@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
。
如果我使用第二个签名,我确实会收到这些值,但是对于未选中的值也会收到 false 值(因为 MVC 阴影所有复选框都有一个隐藏字段的模式)。
例如,我将收到类似于 orderNumbers = { "1", "2", "false", "4", "false" }
的东西。
为什么我不能只获取数字列表?