简体   繁体   中英

How to get value from controller back to $.Ajax

My setup: asp.net mvc web app

I am having trouble getting a value from a controller back to the $.Ajax call (see below). The controller deletes a record in a database and counts some other records.

$.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();
    }
}

The ajax call and the controller work properly, however when I try to use the returned value in the success function, the alert(result) gives [object object]. I have looked through all related posts, but could not find a solution that worked. Could someone give me a hint where the problem could be and how to make it work? Thank you in advance and regards, Manu

Result is a javascript object so alert works properly. If you want to alert it's structure as JSON use JSON.stringify() method like this:

alert(JSON.stringify(result));

If you want to access your itemsCount, just use dot or bracket notation:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM