戳戳猫的小窝
更新日志
关于
在默认的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](https://image.nyazira.top/Article/image-20240817215835964.png)
404代码处理