[英]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.