在 ASP.NET Core 中处理 404 Not Found 错误信息

admin
admin
2021-06-03
分享:

本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP)
本文出自《从零开始学 ASP.NET Core 与 EntityFramework Core》目录
视频课程效果更佳:跨平台开发实战掌握 ASP.NET Core 与 EntityFramework Core

在 ASP.NET Core 中处理 404 Not Found 错误信息

大家好,我是梁桐铭,我们的 ASP.NET Core 入门课程。欢迎大家关注我的公众号,本节课我们讲解 xxx

本章中,我们将讨论以下内容:

  • ASP.NET Core mvc 中的 2 种 404 错误
  • 如何在 ASP.NET Core mvc 中处理 404 Not Found 错误

404 错误在 ASP.NET Core

有两种 404 错误信息:

第一种:找不到指定 id 的信息。当我们无法通过指定的 Id 找到学生、产品、客户等等信息的时候,产生的 404 错误信息,可以参考以下代码:

     public IActionResult Details(int id)
        {

            Student student = _studentRepository.GetStudent(id);
            if (student==null)
            {
                Response.StatusCode = 404;
                return View("StudentNotFound", id);
            }
            return View(student);
        }

可以通过传递一个 ID 为 99 的值来调用 HomeController 中的 Details()方法:

http://localhost/home/details/99

404 错误信息的视图代码

我们使用 Bootstrap 4 的样式来优化下视图,代码如下:

@model int

@{
    ViewBag.Title = "404 错误";
}

<div class="alert alert-danger mt-1 mb-1">
    <h4>404 Not Found 错误 :</h4>
    <hr/>
    <h5>
        查询不到学生ID为 @Model 的信息。
    </h5>
</div>

<a asp-controller="home" asp-action="index" class="btn btn-outline-success"
   style="width:auto">点击此处查看学生信息列表</a>

在这种情况下,我们知道用户正在尝试转到学生详细信息页面,但因为提供的 ID 值无效。因此,我们需要返回一个带有消息的自定义错误页面,提示用户找不到 ID 以及可以单击以查看学生信息列表的链接。

第二种: 请求的 URL 地址和路由不匹配

请参考一下代码,他也会触发 404 错误异常信息:

http://localhost/market/food

在这种情况下,我们不确定用户到底在访问的什么页面,因此无法显示自定义错误页面。在这种情况下,我们通常都会返回一个统一的错误页面。我们将在下一个章节中讨论如何处理这种类型的 404 错误。

文章说明

如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com 保留版权
感谢您对我的支持

关注微信公众号:角落的白板报

公众号:角落的白板报