我之所以问这个问题,是因为我没有看到太多这样的例子。基本上,我有一个 Controller ,它有一个返回 void 的方法。该方法由通过 jQuery
完成的 post
调用。如果帖子成功,我只需用一些 html 更新页面的一小部分。我不需要从该方法返回任何内容,因此返回 void 可以接受吗?如果没有,那么在进行 ajax 调用时,您通常从 Controller 方法返回什么?
这是我的 Controller 方法:
[HttpPost]
public void AddToCart(ShoppingCartItem shoppingCartItem)
{
_shoppingCartService.AddItem(shoppingCartUserId, shoppingCartItem);
}
这是我的 JavaScript:
$(function () {
$("#addToCart").submit(function (e) {
e.preventDefault();
var shoppingCartItem = JSON.stringify(
{
'Name': $('#Name').val(),
'ProductId': $('#ProductId').val(),
'ShortDescription': $('#ShortDescription').val(),
'Sku': $('#Sku').val()
});
AddToCart(shoppingCartItem);
});
function AddToCart(shoppingCartItem) {
$.ajax({
url: '/ShoppingCart/AddToCart',
async: false,
type: "POST",
data: shoppingCartItem,
dataType: "html",
contentType: "application/json",
error: function (data) {
console.log(data);
},
success: function () {
var count = parseInt($('div.item-counter').html()) + 1;
$('div.item-counter').html(count);
}
});
}
}());
我注意到,如果我的操作方法失败,将调用错误函数,如果成功,将调用成功函数。
最佳答案
如果不返回任何内容,您将不知道它是否成功。
return Json(new { success= true });
然后您可以在成功函数中检查data.success
。
关于jquery - Controller 操作可以通过 jQuery post 返回 void 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723921/