一、400的错误处理
1. 第一种情况:通过id找不到指定的内容或信息
传进来的参数如果为空的情况下,判断当前参数是否有指定的实体数据,无:转到错误页面!反之显示正常页面
2. 第二种情况:请求的url地址和路由不匹配
在startup.cs中的Configure方法处理“url地址和路由不匹配”的情况,前提是需要修改Properties中的launchSettings中编程模式为除开发者模式以外的其他模式(默认为开发者模式)
自定义错误页面,在到startup中写报错页面的跳转地址:
图的意思为:如果不是开发者模式,页面发生400错误会跳转到自定义的页面中
建议使用app.UseStatusCodePagesWithReExecute("/home/errorpage");有更好的用户体验
3. 属性路由
控制器代码
在控制器中写入
第一个ViewBag.path返回:错误地址
第二个ViewBag.querystr:返回的查询字符串
第三个ViewBag.BasePath:没有返回值!目前未知!
4. app.UseStatusCodePagesWithReExecute()和app.UseStatusCodePagesWithRedirects();比较
在页面报错时app.UseStatusCodePagesWithRedirects()返回的http状态码为302,意思是将访问路径地址修改为我们自定义的报错路径
app.UseStatusCodePagesWithReExecute()页面路由出错时直接返回404状态码!方便收集错误信息!
二、处理500的错误提示
在startup-》Configure方法中代码
Properties文件夹—》打开launchSettings.json改为生产环境
报错页面控制器中action代码
页面效果