1

我以前也遇到过这个问题,这让我很恼火,但我一生都无法记住问题所在。

我有一个控制器...

public ActionResult SubmitApplication(ApplicationModel model)
{
   return View("Index", model);
}

和视图

@model ApplicationModel 
@using (Html.BeginRouteForm(null, null, FormMethod.Post, new { action = "/apply/SubmitApplication" }))

    @Html.TextBoxFor(model => model.Email)

    <input type="submit" text="submit"/>

}

我在操作方法上打断,输入的电子邮件正在传递给操作方法没有问题。但是.....无论发生什么,控制器都会在某些时候清除电子邮件,当它传递到页面时,我最终会得到一个空的邮箱。但我想保留它,这样用户就不必再次输入所有信息。我在这里想念什么?

谢谢

编辑:

对不起,我有一个错误的水印工具掩盖了响应,但是仍然有一个奇怪的问题......当我这样做时......

[HttpPost]
public ActionResult Apply(ApplicationModel model)
{
    return View("Index",new ApplicationModel(){FullName = "newValue"});

}

我仍然没有获得页面上的“newValue”,而是获得了原始发布的价值。有人可以解释一下吗?是跟模型状态有关吗?

4

1 回答 1

1

视图助手检查模型状态中是否存在匹配项,如果存在则使用此值。在大多数情况下,此值是用户在发布之前键入的值。如果你想强制视图助手使用你传递的模型,你应该清除模型状态。

于 2013-09-02T10:15:30.977 回答