我有一些表现奇怪的 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/