asp.net-mvc - 如何让窗体中的 ViewData 正确显示?

标签 asp.net-mvc viewdata hidden-field

<%:ViewData["galleryId"]%>
<% using (Html.BeginForm(
             "FinishEdit" , 
             "GalleryManager" , 
             FormMethod.Post , 
             new { enctype = "multipart/form-data" }
             )
         ) 
   {%>
    <%:Html.Hidden("galleryId" , ViewData["galleryId"])%>
<% } %>

表单外的 View 数据正确呈现,但表单内的 viewdata 没有。这是怎么回事?

最佳答案

如果您打算修改任何 POSTed 变量并呈现相同的 View ,请尝试在 Controller 操作中清除模型状态:

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

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

关于asp.net-mvc - 如何让窗体中的 ViewData 正确显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112499/

相关文章:

c# - 在 MVC "Specified cast is not valid"中填充我的模型时出错

Asp.net MVC 用户控件 ViewData

asp.net-mvc - ASP.Net MVC 从复选框列表返回值

asp.net-mvc - 使用 ASP.NET MVC 将多个 View 返回到一个 ActionResult

c# - 使用 ViewData Dictionary 和 ViewBag 的部分参数删除 ViewBag 数据

javascript - 在不使用经典 html 表单的情况下,在 Web 应用程序中存储隐藏值的最佳实践是什么?

wordpress - 如何在联系表 7 中隐藏字段

ios - 通过文本字段传递隐藏变量或两个变量

javascript - 动态 js 文件的标准解决方法是什么

asp.net-mvc - 如何在 Razor 中设置数字编辑器的最小值、最大值和默认值