В ASP MVC У меня есть контроллер, который возвращает JSON данные:ASP MVC и JsonResult в случае ошибки
public JsonResult Edit(int? id)
{
if(id==null)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { message = "Bad Request" }, JsonRequestBehavior.AllowGet);
}
car carTmp = db.car.Find(id);
if (carTmp == null)
{
Response.StatusCode = (int)HttpStatusCode.NotFound;
return Json(new { message = "Not Found" }, JsonRequestBehavior.AllowGet);
}
return Json(carTmp, JsonRequestBehavior.AllowGet);
}
У меня также есть следующий Ajax запрос:
$.getJSON("Edit/" + data, function (result) {
var car = result;
})
.error(function (error) {
alert(error.message);
})
Почему, в случае успех, в объекте result у меня есть объект json (т. е. я могу получить доступ к result.id, result.name ecc ...), но в случае ошибки ошибка.message не определена? (У меня есть сообщение в error.responseJson.message)
потому что результат приближается, я имею в виду, в случае null вы возвращаете сообщение об ошибке, но это тоже будет в случае успеха. Вы можете проверить его один раз, отправив null в модель –