我开始使用 WebAPI 并且大部分情况下一切顺利。我遇到了一个特定功能的问题。这个不同于另一个,因为它的唯一参数是 IEnumerable 类型。
我在 Post() 函数的第一行设置了一个断点,我正在点击该函数,但“值”参数的计数始终为 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({
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) { }
});
}
});