向我的ints
控制器发布MVC
数组似乎会导致值为null
。
表单数据(已解析)表示数组中的每个元素都是单独发布的:
ids[]:39
ids[]:54
这似乎有意义,因为我读到表单数据只能作为键/值对发布。
我的控制器操作定义如下:
[HttpPost]
[Authorize]
public JSONResult SubmitApprovedUploadedPhotoIds(List<int> ids)
{
try
{
if (ids == null)
throw new ArgumentNullException("ids");
// ...
}
// ...
}
我的ajax POST的主要部分:
// `ids` is an array of ints
$.ajax({
url: "/MyController/SubmitApprovedUploadedPhotoIds",
cache: false,
data:
{
ids: ids
},
dataType: "json",
type: "POST",
});
我希望已发布的ID数组填充ids
操作中的MVC
变量。
我尝试将邮政编码更改为:
{
ids: $(ids).serializeArray()
},
并尝试将我的MVC
操作更改为:
public JSONResult SubmitApprovedUploadedPhotoIds(int[] ids)
没有成功。
答案 0 :(得分:1)
要发送一份清单,我认为你必须让你的数据来自这个:
ids[]:39
ids[]:54
对此:
ids:39
ids:54
在您的ajax / post通话中,尝试添加traditional: true
,以便摆脱[]
有关更多问题,请参阅此处:How to send a list of int with jQuery to ASP.net MVC Default Model Binder