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