Сообщение об ошибках из Ajax вызвало методы PartialView в MVC

Если нормальная ошибка загрузки страницы, я могу сообщить подробности исключения пользователю через представление Ошибка и 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 вместе со статусом кажется слишком неприятным. Есть ли установленный шаблон для обработки этого сценария?

7
задан rene 2 February 2014 в 15:10
поделиться