我有一个帐户用户名的备份变量,我通过隐藏字段中的帖子保存它,@Html.HiddenFor(u => u.backupUsername)
. 这是表单发布到的功能:
[HttpPost]
public ActionResult Update(AccountModel newInfo)
{
validateUserInfo(newInfo);
if (ModelState.IsValid)
{
newInfo.updateToDatabase();
}
TempData["ModelState"] = ModelState;
TempData["SomeModel"] = newInfo;
return RedirectToAction("Main");
}
[HttpGet]
public ActionResult Main()
{
if (TempData.ContainsKey("ModelState"))
{
ModelState.Merge((ModelStateDictionary)TempData["ModelState"]);
return View("View", (SomeModel)TempData["SomeModel"]);
}
}
在updateToDatabase()
中,备份用户名被更新以匹配当前用户名。我设置了断点并在调试期间查看了值,以确认这确实发生并且有效。
但是,一旦Update()
再次调用,newInfo.backupUsername
就会恢复到更改任何内容之前的状态。我在这里想念什么?表单的——因此隐藏字段的——值不应该从传入的模型中重新填充吗?