Если нормальная ошибка загрузки страницы, я могу сообщить подробности исключения пользователю через представление Ошибка
и HandleErrorInfo
модель.
Если вызов ajax
ожидает ошибки результата Json
, я могу явно обработать ошибку и передать детали клиенту:
public JsonResult Whatever()
{
try
{
DoSomething();
return Json(new { status = "OK" });
}
catch (Exception e)
{
return Json(new { status = "Error", message = e.Message });
}
}
Итак, моя проблема, я не могу увидеть любой способ сообщить сведения об ошибке из вызова Ajax к действию, возвращающему частичное представление.
$.ajax({
url: 'whatever/trevor',
error: function (jqXHR, status, error) {
alert('An error occured: ' + error);
},
success: function (html) {
$container.html(html);
}
});
При этом будет сообщен только код ошибки HTTP (например, внутренняя ошибка сервера), который бесполезен для клиента. Есть ли какой-нибудь хитрый прием, чтобы передать либо успешный результат PartialView (html) , либо сообщение об ошибке?
Явная оценка html из ViewResult
и возвращение его как части объекта Json
вместе со статусом кажется слишком неприятным. Есть ли установленный шаблон для обработки этого сценария?