簡體   English   中英

將javascript對象中的數組傳遞給mvc控制器

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM