[英]pass array in javascript object to mvc controller
我有一个JavaScript对象,例如:
var data={
Manager:name,
ID:id,
EmployeeNames:arrayEmployees
};
如您所见,name和id是简单的字符串,而EmployeeNames是一个数组对象。 我有这样的ajax电话:
$.ajax({
type: "POST",
url: "GetManagerEmployees",
content: "application/json;",
dataType: "json",
data: data,
success:
error:
});
在控制器中,我有一个方法GetManagerEmployees(Data data),其参数类型为Data,其中包含所有属性:
public class Data
{
public string Manager { get; set; }
public int id { get; set; }
public List<string> EmployeeNames { get; set; }
我在控制器中获取data.EmployeeNames为null,这是怎么回事? 你能帮我吗?
刚创建了一个具有这种结构的项目,并且正在运行:
请注意,jquery ajax调用上的radius:true:
从jQuery 1.4开始,$ .param()方法递归地序列化深层对象,以适应现代脚本语言和框架,例如PHP和Ruby on Rails。 您可以通过设置jQuery.ajaxSettings.traditional = true;全局禁用此功能。
资料来源: jQuery.param()文件
另外,您不需要为此的列表。 只需在模型中使用简单的字符串数组即可。
使用Javascript
$("#myBtn").click(function () {
var arrayEmployees = new Array();
arrayEmployees.push("Name1");
var data = {
"Manager": 'John',
"id": 1,
"EmployeeNames": arrayEmployees
};
$.ajax({
type: "POST",
traditional:true,
url: "PostManager",
content: "application/json;",
dataType: "json",
data: data,
success: function () {
}
});
});
控制器/型号
[HttpPost]
public void PostManager(Data data)
{
}
public class Data
{
public string Manager { get; set; }
public int id { get; set; }
public string[] EmployeeNames { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.