2012-01-20 2 views
2

Итак, я пытаюсь перенаправить на страницу с ошибкой в ​​моей AuthorizeAttribute с помощью этого:Как перенаправить на страницу с ошибкой в ​​asp.net mvc 3?

filterContext.Result = new HttpStatusCodeResult(403); 

В моем web.config, первоначально я попытался:

<customErrors defaultRedirect="/Error" mode="On"> 
    <error statusCode="403" redirect="/UnAuthorize" /> 
</customErrors> 

После того как я попробовал:

<customErrors defaultRedirect="/Shared/Error" mode="On"> 
    <error statusCode="403" redirect="/Shared/UnAuthorize" /> 
</customErrors> 

и после того, как, я создать ErrorController и я пробовал:

<customErrors defaultRedirect="/Shared/Error" mode="On"> 
    <error statusCode="403" redirect="/Error/UnAuthorize" /> 
</customErrors> 

Но браузер по-прежнему показывает мне страницу ошибок по умолчанию для 403, любую идею?

ВОЗМОЖНОЕ РЕШЕНИЕ: Ну, я видел ответы @bobek и @Robert Levy, но я нашел другой способ, немного проще.

В моей AuthorizeAttribute я создать Собственость под названием RedirectOnErrorTo, и в OnAuthorization методе моего AuthorizeAttribute я сделал:

if (!string.IsNullOrEmpty(this.RedirectOnErrorTo)) 
{ 
    filterContext.Result = new RedirectResult(this.RedirectOnErrorTo); 
} 

Итак, теперь, когда я объявляю этот атрибут я выбрать, какой путь я хочу, чтобы перенаправить.

Это не автоматизировано, как я хотел использовать только web.config, но становится полезным. Как вы думаете, ребята, это хороший способ решить эту проблему?

+0

Отъезд мой ответ здесь http://stackoverflow.com/questions/8732048/mvc3-custom-error-pages-work-in-dev-not-on-server/8734547 # 8734547 –

ответ

Смежные вопросы