我正在使用webapi2,这是我的客户端代码
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
是我的域名网址
那么,我的代码中的问题是什么?
答案 0 :(得分: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
}