出现 404 错误的情况
- 情况1:根据 ID 查询资料 不存在,将请求重定向为404
- 情况2:请求的URL 不存在 或 与路由不匹配
默认 404 错误异常页面
通过中间件处理异常
- UseStatusCodePages
app.UseStatusCodePages();
- UseStatusCodePagesWithReExecute (推荐)
app.UseStatusCodePagesWithReExecute("/Error/{0}");
添加ErrorController 要统一显示错误信息,我们需要添加对应的控制器和视图代码,请参考以下代码:
public class ErrorController : Controller { //如果状态代码为404,则路径将变为Error/404 [Route("Error/{statusCode}")] public IActionResult HttpStatusCodeHandler(int statusCode) { switch (statusCode) { case 404: ViewBag.ErrorMessage = "抱歉,你访问的页面不存在"; break; } return View("NotFound"); } }
添加 【NotFound.cshtml】视图
@{ Layout = null; ViewBag.Title = "页面不存在"; } <h1>@ViewBag.ErrorMessage</h1> <a href="/"> 点击此处返回首页 </a>
- UseStatusCodePagesWithRedirects
app.UseStatusCodePagesWithRedirects("/Error/{0}");
页面会被 302重定向 到NotFound.cshtml 页面