在使用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. Codeforces 980F Cactus to Tree 仙人掌 Tarjan 树形dp 单调队列

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF980F.html 题目传送门 - CF980F 题意 给定一个 $n$ 个节点 $m$ 条长为 $1$ 的边 ...

  2. day67 ORM模型之高阶用法整理,聚合,分组查询以及F和Q用法,附练习题整理

    归纳总结的笔记: day67 ORM 特殊的语法 一个简单的语法 --翻译成--> SQL语句 语法: 1. 操作数据库表 创建表.删除表.修改表 2. 操作数据库行 增.删.改.查 怎么连数据 ...

  3. elementui command绑定变量对象方法

    command绑定变量对象方法 使用v-bind : command绑定 简写 :command

  4. Kafka的接口回调 +自定义分区、拦截器

    一.接口回调+自定义分区 1.接口回调:在使用消费者的send方法时添加Callback回调 producer.send(new ProducerRecord<String, String> ...

  5. datatables跳转自定义页面(后端分页)

    在后端分页的情况下,怎么做到跳转自定义页面? 0x01 难点: 一. 怎么添加自定义代码? 前提:datatables在整个html加载完毕后,进行datatables数据的渲染,并且把右下角的 “上 ...

  6. 练习六 向表A批量插入数据

    create or replace procedure BATCH_INSERT_A (insertNo in integer) is n_id integer; /***************** ...

  7. maven命令注册jar包到maven仓库

    首先需要具备maven环境 在cmd命令行执行以下命令注册jar包 mvn install:install-file -Dfile=E:\aliyun-java-sdk-dysmsapi-1.0.0. ...

  8. [JOISC2014]ストラップ

    [JOISC2014]ストラップ 题目大意: 有\(n(n\le2000)\)个挂饰,每个挂饰有一个喜悦值\(b_i(|b_i|\le10^6)\),下面有\(b_i(b_i\le10^6)\)个挂钩 ...

  9. IDEA+Maven:cannot download sources

    把IDEA的maven换成maven2

  10. 初窥Java--1(下载JADK,搭建环境变量)

    window系统安装java 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/ind ...