如何使用jQuery Ajax post将一组元素发布到控制器动作。
这就是我的尝试方式,但是我的控制器收到一个空数组。
function dipatchAllocations() {
// unSelected is an array of items of type int.
if (unSelected.length == 0) {
alert("Please select a line item to be dispatched.");
return;
}
debugger;
$.ajax({
type: 'POST',
url: '/Batch/SetToDispatch',
data: '{ "allocationId[]" : "[' + unSelected + ']","batchId" : "' + @Model.Id + '" }',
contentType: "application/json; charset=utf-8",
traditional: true,
success: updateView,
error: errorInSubscribing
});
};
这是我的控制器
[HttpPost]
public ActionResult SetToDispatch(long[] allocationId,long batchId)
{
// Perform some action here
return View("_ReadyToDispatchItems",model);
}
有人可以告诉我我错过了什么。
由于
答案 0 :(得分:1)
试试这个:
var data = { allocationId : unSelected, batchId : @Model.Id };
$.ajax({
type: 'POST',
url: '/Batch/SetToDispatch',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
traditional: true,
success: updateView,
error: errorInSubscribing
});
答案 1 :(得分:0)
你的json语法似乎已关闭,在allocationId []之后不需要[] 请参阅:http://www.w3schools.com/json/json_syntax.asp 对于数组上的语法
答案 2 :(得分:0)
您可以简单地将数据作为查询字符串提供给控制器
$.ajax({
type: 'POST',
url: '/Batch/SetToDispatch/' + unSelected + ',' + batchId
dataType: 'json',
contentType: "application/json; charset=utf-8",
traditional: true,
success: updateView,
error: errorInSubscribing
});
它的逗号分隔,您可以将其拆分为控制器并使用它。 希望它有所帮助