在默认的Edit动作中,有一个捕获异常的行为。
当捕获异常时,返回NotFound()。
这个方法会返回404状态码。
我们可以进入到编辑页面,并将地址栏中的id值改为一个不存在的值,然后回车,浏览器就会显示HTTP ERROR 404。
我们可以捕获异常状态码,并显示一个自定义的异常页面。
在Program.cs中添加UseStatusCodePagesWithReExecute方法,代码如下:
var app = builder.Build();
app.UseStatusCodePagesWithReExecute("/error/{0}");
app.UseStaticFiles();
app.MapDefaultControllerRoute();
app.Run();
该中间件会捕获异常状态码,并交给控制器处理。
在HomeController中添加Error404动作,代码如下:
[Route("error/404")]
public IActionResult Error404()
{
return View();
}
当其他控制器中的Action返回404状态码时,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>
最终呈现效果如下: