绑定到后缀为[]的表单字段

本文关键字:表单 字段 后缀 绑定 | 更新日期: 2023-09-27 18:00:21

我有一些表单字段以名称"value[]"发布:

value%5B%5D=8&value%5B%5D=4&value%5B%5D=2

它们是从jquery库发布的,所以如果不分叉它们的库,我就无法控制它。

我尝试了[Bind(Include = "value%5B%5D")]ICollection<int> values[Bind(Include = "value[]")]ICollection<int> values作为动作方法的参数,但都不起作用。

我可以用Request.Form.GetValues("value[]")验证这些字段是否在请求中。

我可以用这样的表格重新创建相同的问题:

<form action="/Home/Empty" method="post">
    <input name="value[]" value="5">
    <input name="value[]" value="6">
    <input name="value[]" value="7">}
    <input type="submit" value="Submit">
</form>

    [HttpPost]
    public ActionResult Empty(List<int> value)
    {  //value is null :(
        return View();
    }

绑定到后缀为[]的表单字段

重要的是操作方法的参数列表

  • 与您的输入变量命名相同

    public ActionResult Empty(List<int> value)
    

另一种选择是遍历Request.Form数组。

for (i=0; i< Request.Form.count-1; i++)
{
  // somthing to do with Request.Form[i]
}