AJAX只将数组的最后一个元素传递给MVC 5控制器
AJAX passes only the last element of array to MVC 5 controller
我正试图通过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将其发送到控制器时,"conditionID"只包含[6]。我做错了什么?
您可以尝试以下代码
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; }
}
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 将不在模型中的数据返回到mvc控制器
- 使用查询将对象数组发布到asp.net-mvc控制器操作的正确方法是什么
- 从 javascript 获取 MVC 控制器中的操作参数时出错
- 使用 $.getJson 方法从 jquery 调用 C# MVC 控制器方法
- 将数据从MVC控制器传递到Angular视图,而不在最终的html中显示数据值
- 有可能将东西存储在MVC控制器中吗
- 如何使用json对发送到MVC控制器的数据进行编码
- POST KnockoutJS数据到mvc控制器没有绑定
- 在Javascript函数中获取MVC控制器名称
- ASP.NET MVC:2d数组在从javascript传递到MVC控制器操作后为null
- 如何将JavaScript文件路径映射到ASP.Net MVC控制器操作
- AJAX只将数组的最后一个元素传递给MVC 5控制器
- 无法使用.ajax调用显示MVC控制器返回的属性值
- 使用ajax将字符串数组传递给mvc控制器
- 数据从Javascript传递到MVC控制器
- 通过url将jsonArray传递给mvc控制器,无法获取对象
- 使用MVC控制器与websockets连接到windowsazure
- AngularJS vs MVC控制器选择什么