C# MVC模式 404 500页面设置方法


<customErrors mode="On" defaultRedirect="Controllers/Action">
<error statusCode="403" redirect="Controllers/Action" /> <error statusCode="404" redirect="Controllers/Action" /> </customErrors> 这里不是对应你想转到的页面而是你所想跳转的某个Controllers 中的某个Action

 

方法二:

复制代码
protected void Application_EndRequest() { var statusCode = Context.Response.StatusCode; var routingData = Context.Request.RequestContext.RouteData; if (statusCode == 404 || statusCode == 500) { Response.Clear(); var area = DataHelper.ConvertTo(routingData.DataTokens["area"], string.Empty); if (area == "Admin") { Response.RedirectToRoute("Admin_Default", new { controller = "BackError", action = "NotFound", IsReload = 1 }); } else { Response.RedirectToRoute("Default", new { controller = "Error", action = "NotFound", id = UrlParameter.Optional }); } } }
复制代码

 

 

方法三:

Global.aspx.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandlerErrorAttribute()); } 

 

CustomHandlerErrorAttribute.cs

复制代码
public class CustomHandlerErrorAttribute : HandleErrorAttribute { public override void OnException(ExceptionContext filterContext) { if (filterContext.ExceptionHandled) { return; } filterContext.Controller.ViewData.Model = filterContext.Exception; filterContext.Result = new ViewResult { ViewName = "Error", ViewData = filterContext.Controller.ViewData }; filterContext.ExceptionHandled = true; } } 
复制代码

 

web.config <system.web>

<customErrors mode="On"> <error redirect="/home/error" statusCode="404" /> </customErrors> 

 

web.config  <system.webServer>

<httpErrors errorMode="Custom" existingResponse="PassThrough"> </httpErrors> 

 

Error.cshtml

复制代码
<div class="box"> @{ var exception = ViewData.Model; var statusCode = exception == null ? 404 : 500; Response.StatusCode = statusCode; if (statusCode == 404) { <h3>404 Page not found!</h3> <p>没有找到该网页!</p> } else if (statusCode == 500) { <h3>500 程序异常</h3> <p>@exception.Message</p> } } <p style="font-size: 12px; color: Gray">请使用浏览器的后退功能已保证您填写的数据没有丢失!</p> </div> 
复制代码

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM