【发布时间】:2017-06-12 11:01:02
【问题描述】:
我有一个如下的 web api 方法:
/// <summary>
/// DELETE: api/ftpapi/custom/deletefiles
/// </summary>
/// <param name="items"></param>
/// <returns></returns>
[HttpDelete]
[ResponseType(typeof(void))]
public IHttpActionResult DeleteFiles(string[] items)
{
return Ok();
}
在我看来,我使用 Ajax 调用此方法:
var values = $('input:checkbox[name=items]:checked').map(function () {
return this.value;
}).get();
$.ajax({
url: uri_api + '/custom/deletefiles',
method: "DELETE",
data: { items: values }
}).done(function (data) {
location.reload(true);
})
.fail(function (jqXHR, textStatus, err) {
console.log('Error: ' + err);
})
.always(function () {
$('#loader').fadeOut(200);
$('body').removeClass('loader-in');
});
当我在return Ok(); 放置一个断点并测试它时,它可以工作。除了参数string[] items 始终为空。
如果我查看谷歌浏览器的网络标签,我可以在我的表单数据中看到这些项目:
我在这里错过了什么?
【问题讨论】:
-
values的值是多少?并设置contentType: 'application/json' -
@StephenMuecke 查看更新。
-
还有
data: JSON.stringify({ items: values }) -
现在是
null而不是空数组 -
@StephenMuecke 好的,现在解决了。我创建了一个新的类模型,其中包含一个名为 Items 类型的字符串 [] 的属性
标签: javascript jquery asp.net ajax asp.net-mvc