asp.net 中的错误 500 内部服务器错误
Error 500 internal server error in asp.net
我正在编写一个 asp.net 应用程序,并尝试使用 jquery ajax 向 Web api2 控制器方法发出 post 请求。这样做会导致错误 500 内部服务器错误。
这是 jquery 代码
function reload(quantity, cartItemId) {
$.ajax({
url: "/api/user/UpdateCart",
method: "POST",
data: { quantity: quantity, cartItemId:cartItemId },
success: function() {
// window.location.href = "/user/ViewCart";
}
});
}
function addItem(cartItemId) {
var quantity = parseInt(document.getElementById("txt-box-" + cartItemId).value);
quantity++;
document.getElementById("txt-box-" + cartItemId).value = quantity;
reload(quantity,cartItemId);
}
在我的 web api 2 控制器中我有以下代码
[AllowAnonymous]
[HttpPost]
public IHttpActionResult UpdateCart([FromBody]int quantity,[FromBody]int cartItemId)
{
var cartItemInDb = _unitOfWork.CartItemRepository.Read(cartItemId);
cartItemInDb.Quantity = quantity;
_unitOfWork.Complete();
return Ok();
}
我不认为 webapi 允许多个 frombody 参数。当我尝试使用您的代码时,出现此错误 - "Can't bind multiple parameters ('quantity' and 'cartItemId') to the request's content."。当存在绑定问题时,您的函数将不会在 visual studio 中被命中,因为它会从管道本身 return 中被命中。
此外,根据设计,您也可以拥有数量和 cartItemId 并更改您的代码,如下所示:
控制器代码:
[AllowAnonymous]
[HttpPost]
[Route("api/user/UpdateCart")]
public IHttpActionResult UpdateCart([FromBody]CartDetails cartDetails)
{
Console.WriteLine(cartDetails.cartItemId);
Console.WriteLine(cartDetails.quantity); // Your code instead of Console.WriteLine();
return Ok();
}
class:
public class CartDetails
{
public int quantity;
public int cartItemId;
}
ajax 调用 javascript:
$.ajax({
url: "http://localhost:49946/api/user/UpdateCart",
method: "POST",
contentType: "application/json",
data: JSON.stringify(
{
quantity: 12, cartItemId: 109
}),
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
我正在编写一个 asp.net 应用程序,并尝试使用 jquery ajax 向 Web api2 控制器方法发出 post 请求。这样做会导致错误 500 内部服务器错误。 这是 jquery 代码
function reload(quantity, cartItemId) {
$.ajax({
url: "/api/user/UpdateCart",
method: "POST",
data: { quantity: quantity, cartItemId:cartItemId },
success: function() {
// window.location.href = "/user/ViewCart";
}
});
}
function addItem(cartItemId) {
var quantity = parseInt(document.getElementById("txt-box-" + cartItemId).value);
quantity++;
document.getElementById("txt-box-" + cartItemId).value = quantity;
reload(quantity,cartItemId);
}
在我的 web api 2 控制器中我有以下代码
[AllowAnonymous]
[HttpPost]
public IHttpActionResult UpdateCart([FromBody]int quantity,[FromBody]int cartItemId)
{
var cartItemInDb = _unitOfWork.CartItemRepository.Read(cartItemId);
cartItemInDb.Quantity = quantity;
_unitOfWork.Complete();
return Ok();
}
我不认为 webapi 允许多个 frombody 参数。当我尝试使用您的代码时,出现此错误 - "Can't bind multiple parameters ('quantity' and 'cartItemId') to the request's content."。当存在绑定问题时,您的函数将不会在 visual studio 中被命中,因为它会从管道本身 return 中被命中。
此外,根据设计,您也可以拥有数量和 cartItemId 并更改您的代码,如下所示:
控制器代码:
[AllowAnonymous]
[HttpPost]
[Route("api/user/UpdateCart")]
public IHttpActionResult UpdateCart([FromBody]CartDetails cartDetails)
{
Console.WriteLine(cartDetails.cartItemId);
Console.WriteLine(cartDetails.quantity); // Your code instead of Console.WriteLine();
return Ok();
}
class:
public class CartDetails
{
public int quantity;
public int cartItemId;
}
ajax 调用 javascript:
$.ajax({
url: "http://localhost:49946/api/user/UpdateCart",
method: "POST",
contentType: "application/json",
data: JSON.stringify(
{
quantity: 12, cartItemId: 109
}),
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});