MVC Как вернуть представление в ActionFilterAttribute, например ActionResult?

Возможно ли вообще вернуть представление из ActionFilterAttribute? Прямо сейчас у меня просто возникает ошибка, а в OnException в базовом контроллере перенаправляется на страницу с ошибкой. Хотелось бы показать мое представление NoAccess, как я делаю, когда есть проблема с разрешениями внутри действия, но это происходит из-за атрибута действия.

    public sealed class UserHasPermissionAttribute : ActionFilterAttribute
    {
      public override void OnActionExecuting(ActionExecutingContext filterContext)
      {
if(HasPermission == false){

//What are my options here a view?

}
}
}

Видел несколько сайтов и блогов, но ни один из них не объяснил хорошо или то, что я ищу.


person Yogurt The Wise    schedule 29.09.2011    source источник


Ответы (1)


Судя по тому, для чего вы используете фильтр действий, похоже, что вам следует использовать AuthorizeAttribute?

В качестве альтернативы вы можете попробовать просто перенаправить в самом методе OnActionExecuting, используя что-то вроде:

filterContext.HttpContext.Response.Redirect(errorUrl);
person codefrenzy    schedule 30.09.2011