我尝试做的是为用户创建一个表单,为每个公司输入一个用户名,该用户名将从数据库中提取。一旦用户按下"创建",它将尝试将用户名添加到数据库。如果有任何公司的用户名有错误(即用户名太短,包含数字等),我再次生成表格,只有这些公司有空白的用户名字段。但是,由于某些原因,这不起作用......
.NET小提琴代码: https://dotnetfiddle.net/lAttUb
如果您输入以下内容:
它将返回为Ellesmore Center填写 delta 的表单,并为430 Corporation填写 ec 。从调试器开始,看起来直到HtmlHelper.TextBoxFor方法才能运行。有什么想法吗?
答案 0 :(得分:2)
问题是您的DisplayFor和TextBoxFor不同步
在For循环上放置一个断点并运行上面描述的测试用例。 你会找到那个
@Html.DisplayFor(x => x.WifiAccounts[0].CompanyName) == EllesMore Center
而
@Html.TextBoxFor(x => x.WifiAccounts[0].Username) == "Delta"
修改强>
NVM以上情况并非如此 您的View保留了之前获取方法中有关模型的信息。
在ForEach语句和
之前添加ModelState.Clear()
还会注释掉此代码,否则您的文本框字段将为空
//account.Username = string.Empty;