我有一个带有GET和POST的标准编辑方案,该表单有一个Save按钮和一个Lookup按钮,允许用户查找邮政编码,填写地址并在表单字段中返回。查找按钮回发到编辑控制器方法。
以下不是真正的代码,而是演示了我的问题...
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int CustomerId, string LookupButton)
{
Customer customer = new Customer();
UpdateModel(customer);
//customer.County = "Hello world!";
return View(customer);
...
}
此代码按预期执行,只返回现有的表单数据,但是当我取消注释手动更改County字段的行时,这些更改不会显示在表单上。这引起了我的兴趣,因为其形式为
<%= ViewData.Eval("County") %>
将返回“Hello world!”但是
<%= Html.TextBox("County") %>
仍保留旧价值!
<input id="County" name="County" type="text" value="" />
客户是EF4类。
任何帮助都非常感激。
答案 0 :(得分:4)
这是因为Html.TextBox
首先查找已发布的请求值,然后查看您在控制器中更新的模型。在已发布的请求值中,它会找到旧值。