为.Net core 加入自定义的错误页面

2021-03-09 17:56:39 浏览数 (1)

前文再续,书接上一篇;话说上一篇[为.Net core 加入日志功能]使某朋友顿时开悟,发现日志可以玩出这样的高度。。好吧,这次我们再将.Net core的框架,玩得更上一个层次。。

众所周知,当一个系统出现页面问题无法访问或出错,对用户来说都是一种噩梦。。因为所反馈的内容都是不友好的,那么有没有什么办法更好的显示呢。一开始我们是对IIS的错误页面进行重定义,例如404跳去相关的页面,但这样比较费事多系统部署就麻烦了。那有没有更好的处理,MVC以前则可以通过WEB.CONFIG进行设置;但最近研究.NET Core有一个更便捷的方法,就是直接将错误也写入页面路由,当出现错误页面路由就自动跳转。好吧也不废话,直接上干货。。

1、修改配置服务和应用的Startup.cs类:

在 Configure(IApplicationBuilder app) 中加入

代码语言:javascript复制
  app.UseStatusCodePagesWithRedirects("/Login/Error/?Errcode={0}");

这个解释一下UseStatusCodePagesWithRedirects,它是.Net Core的一个聪明的中间件。为什么说它聪明呢?因为它会拦截 404 状态代码,并且重定向到指定的错误路径中并带入状态代码进行跳转。。

2、既然能重定向那我就只需在控制器中加入相关的代码就可以。

代码语言:javascript复制
 public IActionResult Error(string Errcode){
            /*var statusCodeResult =
               HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
            ViewBag.Path = statusCodeResult.OriginalPath;*/
            ViewBag.Errcode = Errcode;           
            return View();
 }

这样就能当出现错误自动跳转,当然可以加入我们上次说的日志功能,就可以完美了。。

0 人点赞