如何从控制器获取值回到$ .Ajax

时间:2018-02-20 19:35:14

标签: c# jquery asp.net-mvc asp.net-ajax

我的设置:asp.net mvc web app

我无法从控制器获取值回$ .Ajax调用(见下文)。控制器删除数据库中的记录并计算其他一些记录。

$.ajax({
type: "POST",
url: actions.action.RemoveItem + "?id=" + dataId,
contentType: "application/json; charset=utf-8",
dataType: "json",
traditional: true,
success: function (result) {
    alert(result);
},
error: function (result) {
    alert("Error");
}});

[HttpPost]
public JsonResult RemoveItem(int id)
{
    ... delete a record in the db
    itemsCount = .... counts of some other records in the db

    if (deletedRecord.id != null)
    {
        return Json(new { itemsCount });
    }
    else
    {
        return JsonError();
    }
}

ajax调用和控制器正常工作,但是当我尝试在success函数中使用返回值时,alert(result)给出[object object]。 我查看了所有相关帖子,但找不到有效的解决方案。有人可以给我一个暗示问题可能是什么以及如何使其工作? 感谢您提前和问候,Manu

1 个答案:

答案 0 :(得分:1)

结果是一个javascript对象,因此警报可以正常工作。如果你想像JSON一样使用JSON.stringify()方法来警告它的结构:

alert(JSON.stringify(result));

如果您想访问itemsCount,只需使用点或括号表示法:

alert(result.itemsCount);
alert(result['itemsCount']);