У меня есть глобальный фильтр действий, который устанавливает MasterPage всех ViewResults во время события OnActionExecuting.
В ряде моих контроллеров (где каждый контроллер представляет функцию приложения), мне нужно проверить, включена ли эта функция, и если нет, вернуть другое представление.
Вот код:
protected override void OnActionExecuting(ActionExecutingContext filterContext) {
if (!settings.Enabled)
{
filterContext.Result = View("NotFound");
}
base.OnActionExecuting(filterContext);
}
Проблема в том, что при установке результата, подобного этому, метод OnActionExecuted моего ActionFilter не запускается, то есть я не получаю правильный MasterPage.
Я хотел бы понять, почему это происходит. Одно из возможных решений - переместить мою логику ActionFilter в OnResultExecuting (это срабатывает), но я все еще не понимаю, почему OnActionExecuted этого не делает.
Большое спасибо
Ben