Javascript AJAX将json数据放入ASP.NET Web API方法
我正在尝试将一个简单的AJAX放到我的API方法中。请求发送到API方法时没有任何错误,但未设置这两个参数。他们都是0。为什么会这样 AJAX调用:Javascript AJAX将json数据放入ASP.NET Web API方法,javascript,ajax,asp.net-web-api,Javascript,Ajax,Asp.net Web Api,我正在尝试将一个简单的AJAX放到我的API方法中。请求发送到API方法时没有任何错误,但未设置这两个参数。他们都是0。为什么会这样 AJAX调用: var data = { productId: 100, oldIndex: 3 }; $.ajax({ url: '/api/products/reorder', method: 'PUT',
var data = {
productId: 100,
oldIndex: 3
};
$.ajax({
url: '/api/products/reorder',
method: 'PUT',
data: JSON.stringify(data),
contentType: 'application/json'
});
[HttpPut("api/products/reorder")]
public IActionResult ReOrder([FromBody]int productId, [FromBody]int oldIndex)
{
}
API:
var data = {
productId: 100,
oldIndex: 3
};
$.ajax({
url: '/api/products/reorder',
method: 'PUT',
data: JSON.stringify(data),
contentType: 'application/json'
});
[HttpPut("api/products/reorder")]
public IActionResult ReOrder([FromBody]int productId, [FromBody]int oldIndex)
{
}
我相信你应该能够做到这一点:
$.ajax({
url: '/api/products/reorder/' + data.productId + '/' + data.oldIndex,
method: 'PUT',
contentType: 'application/json'
});
[HttpPut("api/products/reorder/{productId}/{oldIndex}")]
public IActionResult ReOrder(int productId, int oldIndex)
{
}
如果这是一个直接的副本,你有一个在你的网址打字错误。您以单引号开始,但以双引号结束。已修复,对此表示抱歉。打字错误正如我所说的,我很好地掌握了这个方法,没有任何错误。无法通过的是参数。最多允许从消息体读取一个参数。我会删除两个[FromBody]标记。@Joe我明白了,所以我必须发送一个字符串,然后拆分它?在大多数情况下,这是一个对象,因此通常只有一个参数,但我不想在c#中为此创建匹配对象,因为它是一个临时匿名对象。我只需要把这两个值取出来。我很想把它们放在url中。WebApi应该能够解析您发送的内容,而不必使用FromBody。是的,这是有效的,我想这就是我应该做的。但是,products是一个子实体,所以我实际的web API调用是这样的:/API/productgalleries/{id}/products/reorder/{productId}/{oldIndex}或类似的东西。。。是啊,真的很酷!