Я начинаю работу с WebAPI, и по большей части все идет хорошо. У меня проблема с одной конкретной функцией. Этот отличается от другого, потому что только параметр имеет тип IEnumerable.
Я установил точку останова в первой строке функции Post(), и я нажимаю на эту функцию, но параметр "values" ALWAYS имеет счет 0. Я проверил, что параметр, идущий на стороне клиента фактически содержит массив целых чисел. Если я удалю атрибут [FromUri], параметр "values" будет равен NULL вместо 0.
Как мне получить массив целых чисел в моей функции WebAPI?
Здесь функция WebAPI:
[System.Web.Mvc.HttpPost]
public void Post([FromUri] IEnumerable<int> values)
{
if (values == null || !values.Any()) return;
int sortorder = 1;
foreach (int photoId in values)
{
_horseRepository.UpdateSortOrder(photoId, sortorder);
sortorder++;
}
}
Здесь вызов AJAX (используется функция сортировки JQuery UI Sortable):
$(".sortable").sortable({
update: function (event, ui) {
var newArray = $(".sortable").sortable("toArray");
$.ajax({
url: '/api/photo',
type: 'POST',
contentType: 'application/json, charset=utf-8',
async: true,
dataType: 'json',
data: JSON.stringify(newArray),
complete: function (data) { }
});
}
});