【问题标题】:How do I get ViewData inside a form to display correctly?如何让表单内的 ViewData 正确显示?
【发布时间】:2011-02-25 01:04:52
【问题描述】:
<%:ViewData["galleryId"]%>
<% using (Html.BeginForm(
             "FinishEdit" , 
             "GalleryManager" , 
             FormMethod.Post , 
             new { enctype = "multipart/form-data" }
             )
         ) 
   {%>
    <%:Html.Hidden("galleryId" , ViewData["galleryId"])%>
<% } %>

表单外的视图数据正确呈现,但表单内的viewdata 却没有。怎么回事?

【问题讨论】:

    标签: asp.net-mvc viewdata hidden-field


    【解决方案1】:

    如果您打算修改任何 POST 变量并呈现相同的视图,请尝试在控制器操作中清除模型状态:

    [HttpPost]
    public ActionResult FinishEdit()
    {
        ...
        ModelState.Remove("galleryId");
        ViewData["galleryId"] = "some new gallery id";
        return View();
    }
    

    Html 助手首先在 ViewData 和 Model 之前查找模型状态字典值。

    【讨论】:

      【解决方案2】:

      Html.Hidden 助手首先查找ModelState 字典。这可能是一个原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-07
        • 2015-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-12
        相关资源
        最近更新 更多