我正在尝试通过AJAX向我的MVC控制器发送两个整数数组。 这是我的JavaScript代码:
var condDeviceIDs = [];
var resDeviceIDs = [];
$("#selectDvcForCond").on('click', function () {
var deviceID = $('#dvc-cond').val();
condDeviceIDs.push(deviceID);
});
$("#selectDvcForRes").on('click', function () {
var deviceID = $('#dvc-res').val();
resDeviceIDs.push(deviceID);
});
$("#AddScenarioButton").on('click', function () {
$.ajax({
type: 'POST',
url: "@Url.Action("AddScenario", "Device")",
traditional: true,
data: { 'conditionIDs': condDeviceIDs, 'resultIDs': resDeviceIDs },
}
);
});
这是我的行动:
public ActionResult AddScenario(int[] conditionIDs,int[] resultIDs)
问题是axaj只将数组的最后一个元素传递给控制器。我用firebug检查了我的JS代码,这是正确的。 例如'condDeviceIDs'包含[17,4,6],但是当ajax将它发送到控制器时,“conditionIDs”只包含[6]。 我做错了什么?
答案 0 :(得分:0)
您可以尝试以下代码
postData = { 'conditionIDs': condDeviceIDs, 'resultIDs': resDeviceIDs };
$.ajax({
type: 'POST',
contentType: "application/json;charset=utf-8",
url: "@Url.Action("AddScenario", "Device")",
dataType: 'json',
data: JSON.stringify(postData),
success: function (result) {
console.log(result)
},
failure: function (result) {
console.log(result)
}
});
控制器
public ActionResult AddScenario(YourViewModel model)
{
}
创建ViewModel
public class YourViewModel
{
public int[] conditionIDs{ get; set; }
public int[] resultIDs{ get; set; }
}