对于我无法让我的整数数组值正确贴到我的MVC控制器某种原因。我已经看了关于这个话题 很多职位,但到目前为止我还没有能够得到这个工作。jQuery的POST不是写整数数组到MVC控制器参数
我的来电显示是这样的:
$scope.openRollUpReport = function (inItem) {
var IssueIDs = [];
IssueIDs.push(1);
IssueIDs.push(4);
var request = $.ajax({
traditional: true,
url: url,
type: "POST",
data: JSON.stringify(IssueIDs),
datatype: 'json'
});
};
我控制器的方法是这样的:
[System.Web.Http.Route("Api/Report/RollUpReport/")]
[System.Web.Mvc.HttpPost]
public void RollUpReport(int[] IssueIDs)
{
}
我成功地调用控制器方法。但是,IssueID如下所示:{int [0]}
另外,我注意到在IE Developer工具中,Request Body看起来像这样: [1,4]。我相信这是我失踪的基本原理。任何帮助表示赞赏。
感谢,
皮特
感谢凯文,我尝试这样做:
var IssueIDs = [];
IssueIDs.push(1);
IssueIDs.push(4);
var jsonData = { IssueIDs: IssueIDs };
var request = $.ajax({
traditional: true,
url: url,
type: "POST",
data: JSON.stringify(jsonData),
datatype: 'json'
});
但我仍然得到这个服务器的方法:{INT [0]}
我决定改变这只是简单的发布一个逗号分隔的字符串,然后解析服务器端。这是我结束了:
$scope.openRollUpReport = function (inItem) {
var IssueIDs = '1,5,9,12';
var request = $.ajax({
traditional: true,
url: url,
type: "POST",
data: '=' + IssueIDs
});
};
服务器端:
[System.Web.Http.HttpPost]
public HttpResponseMessage RollUpReport([FromBody] string IssueIDs)
{
HttpResponseMessage result;
result = new HttpResponseMessage(HttpStatusCode.OK);
return result;
}
感谢凯文,我想如你所说,但我仍然得到同样的结果。 – Pete