<%:ViewData["galleryId"]%>
<% using (Html.BeginForm(
"FinishEdit" ,
"GalleryManager" ,
FormMethod.Post ,
new { enctype = "multipart/form-data" }
)
)
{%>
<%:Html.Hidden("galleryId" , ViewData["galleryId"])%>
<% } %>
表单外部的视图数据正确呈现,但表单内的viewdata
没有。发生了什么事?
答案 0 :(得分:2)
Html.Hidden helper查找第一个ModelState字典。这可能是一个原因。
答案 1 :(得分:2)
如果您打算修改任何POSTed变量并渲染相同的视图,请尝试清除控制器操作中的模型状态:
[HttpPost]
public ActionResult FinishEdit()
{
...
ModelState.Remove("galleryId");
ViewData["galleryId"] = "some new gallery id";
return View();
}
Html助手首先在ViewData和Model之前查看模型状态字典值。