2

我使用webapi2,這裏是我的客戶端代碼通字符串數組作爲參數傳遞給ASP.NET MVC的WebAPI方法

var tbody = $('#files-table').find('tbody'); // tbody where all rows exists 
     var sortOrder = $(tbody).sortable('toArray').toString(); // geting ids of all rows 
     var updateSortOrder = $.ajax({ 
      url: baseUrl + 'mycontroller/updateimagesorder', 
      dataType: 'json', 
      traditional: true, 
      contentType: 'application/json', 
      data: JSON.stringify({ "sortOrder": sortOrder.split(',') }), 
      type: 'PUT' 
     }); 
     updateSortOrder.done(function (result) { 
      closeModel('images-model'); 
     }); 

,這裏是我的服務器端方法

[Route("updateimagesorder")] 
    public HttpResponseMessage PutImagesSortOrder([FromBody]string[] sortOrder) 
    { 
     // do stuff with parameters 
    } 

注:/mycontroller這裏是路由前綴,baseUrl是我的域名url

所以,我的代碼中有什麼問題?

+0

什麼是你所面臨的問題?任何錯誤?任何意外的行爲? – ramiramilu

回答

3

嘗試傳遞值是這樣的:

data: JSON.stringify(sortOrder.split(',')), 

使您的請求負載看起來像一個字符串數組:

["foo", "bar"] 

如果你想通過這樣的價值:

data: JSON.stringify({ "sortOrder": sortOrder.split(',') }), 

然後確保您已經聲明瞭視圖模型:

public class MyViewModel 
{ 
    public string[] SortOrder { get; set; } 
} 

您的控制器動作將作爲參數:

[Route("updateimagesorder")] 
public HttpResponseMessage PutImagesSortOrder(MyViewModel model) 
{ 
    // do stuff with parameters 
} 
+0

不錯!有用 。太好了! – Ancient

相關問題