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

时间:2013-02-20 00:57:41

标签: c# asp.net-mvc

我有一些名称为“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();
    }

1 个答案:

答案 0 :(得分:1)

重要的是你的行动方法的参数列表

  • 与输入变量命名相同

    public ActionResult Empty(List<int> value)
    

另一种方法是迭代Request.Form数组。

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

}