asp.net-mvc – ASP.NET MVC4 CustomErrors DefaultRedirect被忽
发布时间:2020-12-15 22:54:28 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC 4应用程序,使用自定义HandleErrorAttribute来处理只有自定义的异常.我想拦截默认的404和其他非500错误页面,并用更有吸引力的东西替换它们.为此,我将以下内容添加到我的Web.config中: system.web customErrors mode="On" defaultRedirect="~/Err
我有一个MVC 4应用程序,使用自定义HandleErrorAttribute来处理只有自定义的异常.我想拦截默认的404和其他非500错误页面,并用更有吸引力的东西替换它们.为此,我将以下内容添加到我的Web.config中:
<system.web> <customErrors mode="On" defaultRedirect="~/Error/Index" /> ... </ system.web> 我有一个带有Index方法和对应视图的错误控制器,但是我仍然获得默认的404错误页面.我也尝试将defaultRedirect设置为静态html文件无效.我已经尝试添加特定于404< customErrors>之内的404的错误处理,我甚至尝试以编程方式修改路由,没有任何结果.我失踪了什么为什么ASP忽略我的默认错误处理? 注意:我以前注意到,我无法在本地测试我的CustomHandleErrorAttribute,即使使用< customErrors mode =“On”.当我从我的设备盒中点击我的服务器时,它的工作正常,但不知道是否相关. This guy也有同样的问题. 解决方法
这应该工作:
Web.Config <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml"> <error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml" /> <error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml" /> </customErrors> 2.在FilterConfig类中注册HandleErrorAttribute作为全局动作过滤器,如下所示 public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); } 如果这不工作,那么尝试通过检查Global.asax中的以下内容的状态代码来转移响应:至少它必须工作. void Application_EndRequest(object sender,EventArgs e) { if (Response.StatusCode == 401) { Response.ClearContent(); Server.Transfer("~/Views/Shared/UnauthorizedAccess.cshtml"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC AcceptVerbs和注册路由
- asp.net – Visual Studio 2015中的“Visual Basic 10.0不支
- asp.net – Windows窗体的WYSIWYG Markdown控件?
- asp.net – 对框架程序集“System.Runtime,Version = 4.0.1
- asp.net-web-api – ASP.NET核心,Web API RouteAttribute,以
- asp.net – Response.Redirect(“SomeURL”,false)的有效用
- asp.net – / bin浏览时出现错误404
- asp.net-mvc-2 – 强大类型的ActionLink在Asp.Net MVC 2?
- asp.net-mvc – ASP.NET MVC会话状态
- Asp.Net(C#)内联编码Eval if语句
推荐文章
站长推荐
热点阅读