c# - 如何重定向到 asp.net mvc 3 中的错误页面?

标签 c# asp.net-mvc 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,但变得有用。伙计们,你们认为这是解决这个问题的好方法吗?

最佳答案

关于c# - 如何重定向到 asp.net mvc 3 中的错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945668/

相关文章:

c# - 使用 C# 从 Powershell 中解密 SecureString

asp.net-mvc - 如何将模型值从测试类传递到 Controller 类中的操作方法

javascript - 如何使用javascript检查值是否大于另一个值

c# - MVC 两个 Controller 一个 View

C#:对于小型操作,ObjectTrackingEnabled = false 值得吗?

c# - 我可以为 C# 正则表达式定义自定义模式吗?

asp.net-mvc-3 - MVC 模型范围验证器?

visual-studio-2010 - MVC3 发布和 IIS 6

c# - WCF 服务返回 "requested service ' .. .' could not be activated"第一次从 MVC 站点访问它

没有等待或返回的 C# 异步任务方法