前文再续,书接上一篇;话说上一篇[为.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();
}
这样就能当出现错误自动跳转,当然可以加入我们上次说的日志功能,就可以完美了。。