Итак, я пытаюсь перенаправить на страницу с ошибкой в моей 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, но становится полезным. Как вы думаете, ребята, это хороший способ решить эту проблему?
Отъезд мой ответ здесь http://stackoverflow.com/questions/8732048/mvc3-custom-error-pages-work-in-dev-not-on-server/8734547 # 8734547 –