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 является моим доменным адресом

так, что проблема в моем коде?

+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

Смежные вопросы