404代码处理

在默认的Edit动作中,有一个捕获异常的行为。

当捕获异常时,返回NotFound()

这个方法会返回404状态码

我们可以进入到编辑页面,并将地址栏中的id值改为一个不存在的值,然后回车,浏览器就会显示HTTP ERROR 404

我们可以捕获异常状态码,并显示一个自定义的异常页面。

添加状态码处理中间件

在Program.cs中添加UseStatusCodePagesWithReExecute方法,代码如下:

var app = builder.Build();
app.UseStatusCodePagesWithReExecute("/error/{0}");
app.UseStaticFiles();
app.MapDefaultControllerRoute();

app.Run();

该中间件会捕获异常状态码,并交给控制器处理。

添加Error404动作

在HomeController中添加Error404动作,代码如下:

[Route("error/404")]
public IActionResult Error404()
{
    return View();
}

当其他控制器中的Action返回404状态码时,Error404动作就会处理,返回视图。

创建Error404视图

在Views下的Shared文件夹下创建Error404.cshtml视图文件。

将标题设置为Not Found 404。

文本显示同样是Not Found 404,并通过bulma设置样式。

代码如下:

@{
    ViewBag.Title = "Not Found 404";
}
<div class="notification is-danger has-text-centered title is-1">Not Found 404</div>

最终呈现效果如下:

image-20240817215835964