繁体   English   中英

如何重定向到ASP.NET MVC 3中的错误页面?

[英]How can I redirect to an error page in asp.net mvc 3?

因此,我正在尝试使用以下命令重定向到我自己的AuthorizeAttribute中的错误页面:

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的属性,并且在我的AuthorizeAttribute的OnAuthorization方法中,我做到了:

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

因此,现在当我声明此属性时,我选择要重定向的路径。

它不像我只想使用web.config那样自动化,但是变得很有用。 您如何看待,这是解决此问题的好方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM