Asp.net-Web-Api

將 JSON 數組從 Javascript 傳遞到 Web API 控制器方法

  • September 26, 2019

我無法在 web api 控制器方法 (SaveDetails) 中獲取 JSON 數組參數。

這是我的程式碼。

JavaScript 程式碼:

$.ajax(
{
url : "api/Test/SaveDetails",
類型:“POST”,
數據 : {
“僱員”:
[
{ "firstName": "John", "lastName": "Doe" },
{“名字”:“安娜”,“姓氏”:“史密斯”},
{“名字”:“彼得”,“姓氏”:“瓊斯”}
]
},
成功:函式(數據){alert(“成功”);},
錯誤:函式(){警報(“錯誤”);}
})
   

控制器方法

[HttpPost]
public DataSet SaveDetails(Models.Person[] obj)
{
   //save opertion.    
}

模型方法:

public class Person
{
   public string firstName { get; set; }
   public string lastName { get; set; }
}

在 web api 方法中獲取 JSON 數組參數需要進行哪些更改。

試試下面的程式碼:

聲明模型方法如下:

public class Models.employees
{
   public string firstName { get; set; }
   public string lastName { get; set; }
}

public class Models.RootObject
{
   public List<employees> employees { get; set; }
}

控制器:

[HttpPost]
public DataSet SaveDetails([FromBody]RootObject Person)
{
   //save opertion.    
}

這是預期的結果輸出

我在尋找問題的答案時遇到了這個執行緒,試圖將對象列表/數組傳遞給 Web api 控制器。

此連結的詳細資訊: https ://kwilson.io/blog/post-an-array-of-objects-to-webapi-using-jquery/

將您的數據更改為單個匿名對象而不是原始數組,它將起作用。

因此,在您的情況下,您可以為您的數據執行以下操作

data : {
               "":
               [
                   { "firstName": "John", "lastName": "Doe" },
                   { "firstName": "Anna", "lastName": "Smith" },
                   { "firstName": "Peter", "lastName": "Jones" }
               ]
           },

在您的 Web API 控制器中

[HttpPost]
public DataSet SaveDetails(List<Models.Person> obj)
{
   //save operation.    
}

這樣您就不必像 Veera 的回答那樣創建另一個類來保存列表對象。

引用自:https://stackoverflow.com/questions/26479617