0

我有一些表单字段以名称“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();
    }
4

1 回答 1

1

重要的是您的 Action Method 的参数列表

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

    public ActionResult Empty(List<int> value)
    

另一种方法是遍历 Request.Form 数组。

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

}
于 2013-02-20T01:06:06.227 回答