在使用Asp.Net Core Mvc时 404处理整理如下

一、自带404状态处理

1.控制器视图子弹404视图 NotFoundResult,NotFoundObjectResult

        //
// 摘要:
// Creates an Microsoft.AspNetCore.Mvc.NotFoundObjectResult that produces a Microsoft.AspNetCore.Http.StatusCodes.Status404NotFound
// response.
//
// 返回结果:
// The created Microsoft.AspNetCore.Mvc.NotFoundObjectResult for the response.
[NonAction]
public virtual NotFoundObjectResult NotFound(object value);
//
// 摘要:
// Creates an Microsoft.AspNetCore.Mvc.NotFoundResult that produces a Microsoft.AspNetCore.Http.StatusCodes.Status404NotFound
// response.
//
// 返回结果:
// The created Microsoft.AspNetCore.Mvc.NotFoundResult for the response.
[NonAction]
public virtual NotFoundResult NotFound();

2.当前操作返回404状态,或者返回404的一句话提示。

二、自定义404页面显示

在网站中,为了增强提前,通常使用自定义404页面

1.自定义404视图,在控制器中返回

    /// <summary>
/// 定义404视图
/// </summary>
public class NotFoundViewResult : ViewResult
{
public NotFoundViewResult(string viewName)
{
ViewName = viewName;
StatusCode = (int)HttpStatusCode.NotFound;
}
}

2.在控制器中返回使用

        public IActionResult Index()
{
//返回404页面
return new NotFoundViewResult("~/views/Error/code_404.cshtml"); return View();
}

3.呈现结果:

三、全站统一处理404 或者500的错误,并自定义页面内容

1.使用app.UseStatusCodePagesWithReExecute(path,param)可以指定错误和参数

            if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseStatusCodePagesWithReExecute("/Home/Error", null);
}

2. 页面内容根据状态处理

@{
int code = this.Context.Response.StatusCode;
ViewData["Title"] = code + "页面访问错误";
}
@section Head{ }
@section Footer{ }
<!-- 主体内容 -->
<div class="maincontent maincontentcoverage">
<div style="height:40px;"></div>
<!-- 主要内容 -->
<div class="primarycoverage aboutpage" style="font-size:16px;">
<div class="researchmain" style="margin-top: 0px;padding-bottom:60px;">
<div class="aboutSD">
@{
if (code == 404)
{
<div class="majorintroduct" style="margin-top: 0px;padding:50px;">
<div class="flowerTitle">
404了
</div>
<div class="introlduct" style="padding: 50px 50px;">
<div>
您要访问的页面不存在或已经删除~
</div>
<p></p>
<p></p>
<p></p>
<p></p>
<div class="button videoBtn" style="font-size:14px;" href="/">点击返回首页</div>
</div>
</div>
}
else
{
<div class="majorintroduct" style="margin-top: 0px;padding:50px;">
<div class="flowerTitle">
==> 500 访问出错
</div>
<div class="introlduct" style="padding: 50px 50px;">
<div>访问出错,请点击下边按钮返回。</div>
<p></p>
<p></p>
<p></p>
<p></p>
<div class="button videoBtn" style="font-size:14px;" href="/">点击返回首页</div>
</div>
</div>
}
}
</div>
</div>
</div>
</div>

显示效果:

更多:

Asp.Net Core异常处理整理

.Net Core邮件发送之MailKit

Asp.Net Core中Json序列化处理整理

Asp.Net Core 404处理的更多相关文章

  1. Asp.Net Core获取请求上下文HttpContext

    注:特别说明当前版本对应.Net Core2.1意义上框架 一.注入HttpContextAccessor ASP.NET Core中提供了一个IHttpContextAccessor接口,HttpC ...

  2. asp.net core WebAPI学习以及 发布(***入门学习)

    A asp.net Core 系列[一]——创建Web应用 asp.net Core 系列[二]—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API a ...

  3. ASP.NET Core 处理 404 Not Found

    问题 在没有修改任何配置的情况下,这是用户使用 Chrome 访问不存在的URL时会看到的内容: 幸运的是,处理错误状态代码非常简单,我们将在下面介绍三种技术. 解决方案 在以前的ASP.NET MV ...

  4. ASP.NET Core 如何实现404错误跳转到主页

    假如用户在Web浏览器上敲错了URL,访问了ASP.NET Core站点下一个不存在的URL地址,那么默认情况下ASP.NET Core会返回给浏览器著名的404错误,那么有什么办法可以让ASP.NE ...

  5. ASP.NET Core Kestrel 随机404错误

    一.Bug 出现 最近遇到一个很诡异的bug,Visual Studio 2017调试ASP.NET Core 2.2 Web程序的时候,随机性的出现404错误.如下图 事实上这个css文件是存在的, ...

  6. ASP.NET Core的路由[5]:内联路由约束的检验

    当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束.路由系统采用IRouteC ...

  7. ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系

    ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...

  8. ASP.NET Core应用针对静态文件请求的处理[1]: 以Web的形式发布静态文件

    虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件 ...

  9. 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

    ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流 ...

随机推荐

  1. centos的基本操作

    1.ssh连接阿里云一段时间不操作自动断开打开/etc/ssh/sshd_config添加或修改: ClientAliveInterval 120ClientAliveCountMax 0 2.挂载数 ...

  2. Python 经典类和新式类

    #!/usr/bin/env python# -*- coding:utf-8 -*-# 作者:Presley# 邮箱:1209989516@qq.com# 时间:2018-10-21# 新式类和经典 ...

  3. HDU5117 Fluorescent 期望 计数 状压dp 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/HDU5117.html 题目传送门 - HDU5117 题意 $T$ 组数据. 给你 $n$ 盏灯 ,$m$ 个 ...

  4. Python GUI - tkinter

    目录: Tkinter 组件 标准属性 几何管理 代码实例: 1. Label & Button 2. Entry & Text 3.Listbox列表 4.Radiobutton单选 ...

  5. day 42 mycql 数据类型

    关于性别字段的存储数据类型选用 -- 性别字段 create table actor2 (id int not null auto_increment primary key,name char(32 ...

  6. themeleaf跳转锚链接

    <a class="lianjie3" th:href="@{/}+'#requires'"></a>

  7. Create-react-app+Antd-mobile+Less配置(学习中的记录)

    (参考别人结合自己的整理得出,若有错误请大神指出) Facebook 官方推出Create-React-App脚手架,基本可以零配置搭建基于webpack的React开发环境,内置了热更新等功能. 详 ...

  8. TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—Jason niu

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #Import MNIST data from t ...

  9. RIPng 配置

    一.拓扑图 二.配置过程 1)首先将各个端口的IP地址按照如上图所示配置完毕 2)在全局模式下创建rip ipv6 router rip [name] 3)在各个路由器上进入所连接的端口启用RIPng ...

  10. Nginx配置以及域名转发

    工程中的nginx配置 #user nobody; worker_processes 24; error_log /home/xxx/opt/nginx/logs/error.log; pid /ho ...