Asp.Net Core 404处理
在使用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 404处理的更多相关文章
- Asp.Net Core获取请求上下文HttpContext
注:特别说明当前版本对应.Net Core2.1意义上框架 一.注入HttpContextAccessor ASP.NET Core中提供了一个IHttpContextAccessor接口,HttpC ...
- asp.net core WebAPI学习以及 发布(***入门学习)
A asp.net Core 系列[一]——创建Web应用 asp.net Core 系列[二]—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API a ...
- ASP.NET Core 处理 404 Not Found
问题 在没有修改任何配置的情况下,这是用户使用 Chrome 访问不存在的URL时会看到的内容: 幸运的是,处理错误状态代码非常简单,我们将在下面介绍三种技术. 解决方案 在以前的ASP.NET MV ...
- ASP.NET Core 如何实现404错误跳转到主页
假如用户在Web浏览器上敲错了URL,访问了ASP.NET Core站点下一个不存在的URL地址,那么默认情况下ASP.NET Core会返回给浏览器著名的404错误,那么有什么办法可以让ASP.NE ...
- ASP.NET Core Kestrel 随机404错误
一.Bug 出现 最近遇到一个很诡异的bug,Visual Studio 2017调试ASP.NET Core 2.2 Web程序的时候,随机性的出现404错误.如下图 事实上这个css文件是存在的, ...
- ASP.NET Core的路由[5]:内联路由约束的检验
当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束.路由系统采用IRouteC ...
- ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系
ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...
- ASP.NET Core应用针对静态文件请求的处理[1]: 以Web的形式发布静态文件
虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件 ...
- 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流 ...
随机推荐
- Codeforces 911F Tree Destruction
Tree Destruction 先把直径扣出来, 然后每个点都和直径的其中一端组合, 这样可以保证是最优的. #include<bits/stdc++.h> #define LL lon ...
- Codeforces 830D Singer House 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/CF830D.html 题解 考虑用 $dp[i][j]$ 表示深度为 $i$ 的树里,有 $j$ 条路径的方案数 ...
- 51Nod1038 X^A Mod P 数论 原根 BSGS
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1038.html 题目传送门 - 51Nod1038 题意 题解 在模质数意义下,求高次剩余,模板题. ...
- HDU5117 Fluorescent 期望 计数 状压dp 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/HDU5117.html 题目传送门 - HDU5117 题意 $T$ 组数据. 给你 $n$ 盏灯 ,$m$ 个 ...
- mySql版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver
Mysql版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver 1. 在使用mysql时,控制台日志报错如下: Loading class `c ...
- apache利用http_referer进行防盗链
http://blog.sina.com.cn/s/blog_8729dd9801011rn1.html
- Jupyter运行时出现下面的错误:Unexpected error while saving file: arma/Untitled.ipynb [Errno 13] Permission denied:
运行环境:Ubuntu16.04+Python2.7执行如下代码修改Jupyter的一部分文件的权限(执行完之后重新启动即可): sudo chmod ~/.local/share/jupyter/ ...
- 图解安装Debian 9.5全过程
本文将为你带来安装Debian 9.5 GNU/Linux的教程,安装全过程图文并茂讲解.安装Debian 9.5可以把ISO文件下载下来刻录成DVD安装或者采用虚拟机安装等等方法. 一.下载Debi ...
- Elasticsearch 基于 URL 的搜索请求
背景 Elasticsearch 不像关系型数据库,没有简易的 SQL 用来查询数据,只能通过调用 RESTful API 实现查询.大体上查询分为两种,基于 URL 的和基于请求主体的.基于 URL ...
- QtQuick大坑笔记之Http的Get与Post操作(带cookie)
前言 最近在为单位做一个简单的手机App,基于Qt技术栈的选择了QtQuick来开发.不得不说QtQucik开发的确舒服,很多东西都不用写就可以只用,UI定义起来也比较自由.但是本人想通过cookie ...