常用处理方式

自己定制网站的404、500页面的方式有很多,比如修改nginx配置文件,指定请求返回码对应的页面,

.netframework项目中修改webconfig文件,指定customerror节点的文件路径都可以。

在那么在.net core中如何处理呢。

500错误页

  • 500的错误都是靠拦截处理,在.netcore mvc拦截器中处理也可以。
public class ErrorPageFilter : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext context)
{
if (context.HttpContext.Response.StatusCode == 500)
{
context.HttpContext.Response.Redirect("error/500");
}
base.OnResultExecuted(context);
}
} [ErrorPageFilter]
public abstract class PageController
{}
  • .net core mvc 创建的时候也自带了错误页的管道处理

    在 startup.cs中
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//开发环境直接展示错误堆栈的页面
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
//正式环境自定义错误页
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
} 在 home控制器中 有这样的方法
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
} 自己把 error视图文件替换掉自己想要的样式就可以了。

404页面

通过上述方法是拦截不到404页面的,应该借助管道的中间件去处理,在 startup.cs文件的 configure方法中添加

  app.UseStatusCodePagesWithReExecute("/error/{0}");

添加 error控制器

public class ErrorController : Controller
{
/// <summary>
/// {0}中是错误码
/// </summary>
/// <returns></returns>
[Route("/error/{0}")]
public IActionResult Page()
{
//跳转到404错误页
if (Response.StatusCode == 404)
{
return View("/views/error/notfound.cshtml");
}
return View();
}
}

需要注意的是错误页拦截不要写在这里在上面的 app.UseExceptionHandler("/Home/Error"); 控制器中处理就行了

.net core 自定义404 500页面的更多相关文章

  1. 在ASP.NET MVC3项目中,自定义404错误页面

    在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中 ...

  2. apache下自定义404错误页面

    404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开. 很多开源系统包括CMS系统.Blog系统等不提供404页面或提供的404页面并未达到SE ...

  3. apache 自定义404错误页面

    1.有些提供web服务的网站,在用户访问一个不存在的网站文件时,会提示404错误,如下所示: 现在要求自定义一个错误页面,也就是出现404错误代码时,跳转到我们自定义的网址上.下面记录下方法: 1.编 ...

  4. django中自定义404错误页面

    自定义404页面,如下5个步骤:1)使用自定义的404页面,必须在setting文件修改DEBUG = False(即关闭debug调试模式)2)必须在setting文件修改ALLOWED_HOSTS ...

  5. asp.net core 自定义404等友好错误页面

    Home控制器里: [Route("Home/Error/{statusCode}")] public IActionResult Error(int statusCode) { ...

  6. 【第八篇】mvc razor视图配置404 500页面

    记住是最外层的这个Web.config 在  <system.web> </system.web>节点里面配置 <customErrors defaultRedirect ...

  7. Tomcat中配置自定义404错误页面

    404,50x这种错误经常遇到. 如果%CATALINA_HOME%\conf\web.xml和具体应用中都有设置%CATALINA_HOME%\webapps\ROOT\WEB-INF\web.xm ...

  8. ASP.NET 在IIS7.5下自定义404错误页面的方法

    .net 4.0 本机调试时一切正常,配置如下     <customErrors redirectMode="ResponseRewrite" mode="On& ...

  9. django 配置404,500页面

    JSP CURL session COOKIE diango 自定义404 500页面     1.首先将settings设置debug=false;             2.设置static路径 ...

随机推荐

  1. React躬行记(13)——React Router

    在网络工程中,路由能保证信息从源地址传输到正确地目的地址,避免在互联网中迷失方向.而前端应用中的路由,其功能与之类似,也是保证信息的准确性,只不过来源变成URL,目的地变成HTML页面. 在传统的前端 ...

  2. [原创实践]redhat linux 5.3搭建Nexus

    1:下载安装JDK,配置好环境变量(JAVA_HOME等) 下载linux下64位的jdk-7u45-linux-x64.tar.gz(百度网盘下载,官网的jdk-7u51-linux-x64.tar ...

  3. MySQL-EXPLAIN执行计划字段解释

    做 MySQL 查询优化遇到明明建了索引查询仍然很慢,看这个 SQL 的执行计划,看它到底有没有用到索引,执行的具体情况.我们可以用 EXPLAIN 命令查看 SQL 的执行计划,SQL 优化的重要性 ...

  4. MySQL-EXPLAIN执行计划Extra解释

    EXPLAIN命令输出的列中Extra字段可选值较多,这里单独说一下. 该Extra列 EXPLAIN输出包含MySQL解决查询的额外信息.以下列表说明了此列中可能出现的值.每个项目还指示JSON格式 ...

  5. PHP 数组转字符串后仍保留数组格式

    写此方法的目的是,我想把一个PHP数组配置文件读进程序,添加些配置,然后在写入文件: var_export 方法会把原来的配置打乱(比如数组序号我没有加,他自动给我加上 0,1,2,3...),而且格 ...

  6. Mac查看及清理QQ、微信之前下载的图片、视频或DB等

    之前写过一篇清理Mac空间的文章: Mac系统清理.占用空间大.空间不够.查看系统文件大小分布 其实这篇文章不是太全,有些资源还是清理不彻底,正好前段时间需要找微信下载的资源,其实可以算作空间清理的续 ...

  7. Python 列表深浅复制详解

    在文章<Python 数据类型>里边介绍了列表的用法,其中列表有个 copy() 方法,意思是复制一个相同的列表.例如 names = ["小明", "小红& ...

  8. FileUtils工具类的使用

    import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.DirectoryFileFilter; ...

  9. macbook 安装redis流程及问题总结

    Mac安装redis流程和总结 一.redis安装流程: 1.进入redis官网-->点击download-->选择稳定版本(stable)-->点击Download即可. 2.将下 ...

  10. [转]Android ImageView的scaleType属性与adjustViewBounds属性

    Android ImageView的scaleType属性与adjustViewBounds属性   ImageView的scaleType的属性有好几种,分别是matrix(默认).center.c ...