Asp.net-Web-Api
將 JSON 數組從 Javascript 傳遞到 Web API 控制器方法
我無法在 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 的回答那樣創建另一個類來保存列表對象。
