Как мне подключить вызов действия контроллера в MVC? - PullRequest
1 голос
/ 08 февраля 2012

В моем приложении MVC3 у меня много контроллеров и действий.Иногда возникает исключение при выполнении действия.Я хочу иметь возможность регистрировать это и позволить исключению быть обработанным MVC.

Что-то вроде этого псевдокода:

try {
    MvcInvokeControllerAction( controller, action, params );
} catch( Exception e ) {
    trace( "Error while invoking " + controller + "-" +
       action + " with " + params + " details: " + getDetails( e ) );
    throw;
}

Что я хочу, чтобы иметь возможность перехватить исключение перед нимсначала обрабатывается MVC, потому что иногда срабатывание MVC вызывает другое исключение, и я вижу последнее в Application_Error(), а исходное исключение - лоты.

Как мне добиться такого перехвата?

1 Ответ

1 голос
/ 08 февраля 2012

Вы можете переопределить OnException Метод На вашем Basecontrollor .

Это будет блок Catch для всех исключений в действиях Controllor.просто расширите все свои контроллеры из Basecontrollor

protected override void OnException(ExceptionContext filterContext)
{
}

Пример

public class BaseController : Controller
{

    protected override void OnException(ExceptionContext filterContext)
    {
        base.OnException(filterContext);
        // Handle error here
    }
}


public class TestController : BaseController
{
    public ActionResult Index()
    {
        // If any exceptions then will be caught by 
        // BaseController OnException method
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...