@Html.CheckBox("orderNumbers", new { value = 1 })
@Html.CheckBox("orderNumbers", new { value = 2 })
@Html.CheckBox("orderNumbers", new { value = 3 })
@Html.CheckBox("orderNumbers", new { value = 4 })
@Html.CheckBox("orderNumbers", new { value = 5 })
[HttpPost]
public ActionResult MarkAsCompleted(IEnumerable<int> orderNumbers) { }
[HttpPost]
public ActionResult MarkAsCompleted(IEnumerable<string> orderNumbers) { }
如果我在我的操作方法中使用第一个签名,我会得到一个空的IEnumerable
。将复选框绑定到int数组/ MVC中的枚举
如果我用的是第二个签名我确实收到了值,但我也收到未选定值的假值(因为阴影的所有复选框以隐藏字段的MVCS模式)。
例如我会收到类似orderNumbers = { "1", "2", "false", "4", "false" }
为什么我就不能得到号码列表?
事实上,我当然有。真是个傻瓜!我错误地认为,如果它们不能绑定到请求的类型,他们会在模型联编程序中做一些巧妙的事情来忽略错误值。 – fearofawhackplanet 2011-12-16 12:24:53