MVC POST没有返回修改后的视图模型

时间:2010-01-28 10:34:37

标签: asp.net-mvc

我有一个带有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类。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:4)

这是因为Html.TextBox首先查找已发布的请求值,然后查看您在控制器中更新的模型。在已发布的请求值中,它会找到旧值。