asp.net-mvc - MVC 3 验证隐藏输入上的 htmlAttributes

标签 asp.net-mvc asp.net-mvc-3 c#-4.0 viewmodel

我有一些表现奇怪的 mvc3 客户端验证。

在我的 Controller 中我有

ViewBag.Id = item.Id;
ViewBag.reqAction = item.RequestedAction;
return View("Decline");

在我看来,我有

@Html.HiddenFor(model => model.Id, new { value = ViewBag.Id })
@Html.HiddenFor(model => model.RequestedAction, new { value = ViewBag.reqAction })

无论我做什么,RequestedAction 的值都会显示为空白。我什至尝试过...

@Html.HiddenFor(model => model.RequestedAction, new { value = "test" })

Id 的值运行良好,并且验证适用于其他字段(我已省略)。我跟踪了代码,ViewBag.reqAction具有我认为它应该具有的确切值。我的 ViewModel 看起来像这样...

    [Required]
    public int Id { get; set; }

    [Required]
    public string RequestedAction { get; set; }

    [Required]
    [DataType(DataType.MultilineText)]
    public string Explanation { get; set; }

为什么我无法将任何数据放入 RequestedAction 隐藏输入的 value 属性中?

最佳答案

我相信 MVC 正在尝试从模型本身获取值(value)。当它合并 htmlAttributes 时,它会覆盖您指定的值。 Id 起作用的原因是 MVC 可能是从其他位置(可能是 ViewBag)获取值。尝试直接在模型上设置值(或将其放入模型状态)

关于asp.net-mvc - MVC 3 验证隐藏输入上的 htmlAttributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546997/

相关文章:

C# for 循环在 html MVC 中

c# - GroupBy 复杂查询

c# - .NET MVC 自定义日期验证器

javascript - : SCRIPT1006: Expected ')' 这是什么意思

asp.net-mvc - MVC3 中的模型绑定(bind)未找到继承的接口(interface)属性,但在 MVC2 中工作正常

winforms - 如何使用自己的 RGB 值更改 Winform Button ForeColor?

c# - 如何在本地测试每秒请求数?

c# - 对于学习面向对象编程 (C#),您会推荐哪些资源?

c# - 在 .net 4.0 版本上找不到 System.Web 程序集

javascript - ASP.NET MVC3 - 从 Action 动态创建 javascript