Определите тип результата в OnException контроллера - PullRequest
8 голосов
/ 06 августа 2010

Я работаю над проектом MVC.NET 2.0, в котором я пытаюсь вставить некоторую специальную логику обработки ошибок в метод OnException контроллера. По сути, я хочу иметь возможность определить тип результата метода контроллера, в котором было создано необработанное исключение, чтобы я мог возвращать данные об ошибках в определенном формате, зависящем от типа (json для JsonResult и html для ActionResult). Может кто-нибудь указать мне способ определения этого типа? Буду очень признателен за любую помощь.

Заранее спасибо

1 Ответ

7 голосов
/ 07 августа 2010

Предполагается, что вы не изменили маршрутизацию по умолчанию:

protected override void OnException(ExceptionContext filterContext)
{
    var action = filterContext.RouteData.Values["action"].ToString();
    var type = filterContext.Controller.GetType();
    var method = type.GetMethod(action);
    var returnType = method.ReturnType;
    //...do whatever here...
}

Удачи!

...