在ASP.NET MVC中,自定义404错误页面的路由可以通过以下步骤实现:
@{
ViewBag.Title = "Error";
}
<h2>404 - 页面未找到</h2>
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
HttpException httpException = exception as HttpException;
if (httpException != null && httpException.GetHttpCode() == 404)
{
Server.ClearError();
Response.Clear();
Response.StatusCode = 404;
Response.TrySkipIisCustomErrors = true;
HttpContext.Current.RewritePath(Request.ApplicationPath + "/Error");
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), new RouteData()));
}
}
这段代码会捕获404错误,并将请求重定向到Error控制器。
public class ErrorController : Controller
{
public ActionResult Index()
{
return View("Error");
}
}
这段代码会将请求重定向到Error视图。
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error" />
</httpErrors>
</system.webServer>
这段代码会将404错误重定向到Error控制器。
现在,当用户访问不存在的页面时,将会看到自定义的404错误页面。
领取专属 10元无门槛券
手把手带您无忧上云