atm我正在尝试这样,但没有运气,我在我的行动中得到了空白
var arr = [31,17,16];
$.get('<%=Url.Action("Do", "Foo") %>',
{ids:arr},
function(d){...});
public ActionResult Do(IEnumerable<int> ids)
{
...
}
答案 0 :(得分:6)
试试这样:
$.ajax({
url: '<%= Url.Action("Do", "Foo") %>',
data: { ids: [ 31, 17, 16] },
traditional: true,
success: function(result) {
}
});
注意traditional: true
参数。
或者如果你坚持使用$.get()
功能:
$.get(
'<%= Url.Action("Do", "Foo") %>',
$.param({ ids: [31, 17, 16] }, true),
function (result) {
}
);
答案 1 :(得分:2)
我只是偶然发现了这个问题,但却找到了另一种解决方案。我比traditional
更喜欢这个,所以我会在这里发布,以便其他人可以自己选择。
$.ajax(url,
{
type: method, //"GET", or "POST", etc. The REST verb
data: JSON.stringify(myData), //stringify your collection or complex object
contentType:"application/json", //tell the controller what to expect
complete: callback
});
});
这适用于我发送的每种数据类型,无论多么复杂。我们实际上将它包装在一个名为RequestService
的类中,它为从客户端脚本到MVC API控制器的所有请求执行此操作。提供此对象还有很多其他不错的属性,例如timeout
或headers
。查看完整的文档here。
我正在运行.NET Framework 4.5和JQuery 1.7.1,但我相信这个版本的$.ajax
是从1.5开始