asp.net-mvc – 如何处理MVC5中的配置和代码中的404错误?
发布时间:2020-12-16 00:00:17 所属栏目:asp.Net 来源:网络整理
导读:我已经实现了以下链接中提到的异常处理 How to pass error message to error view in MVC 5? 它工作正常.但我要求处理404错误. 我怎样才能做到这一点? 如果我使用下面的代码, customErrors mode="On" error statusCode="404" redirect="/Home/Error"/error/
我已经实现了以下链接中提到的异常处理
How to pass error message to error view in MVC 5? 它工作正常.但我要求处理404错误. 我怎样才能做到这一点? 如果我使用下面的代码, <customErrors mode="On"> <error statusCode="404" redirect="/Home/Error"></error> </customErrors> 当发生任何404错误时,它可以正常工作.但是如果发生任何其他异常,那么我的error.cshtml调用两次并显示相同的异常两次. 解决方法
web.config中
关闭system.web中的自定义错误 <system.web> <customErrors mode="Off" /> </system.web> 在system.webServer中配置http错误 <system.webServer> <httpErrors errorMode="Custom" existingResponse="Auto"> <clear /> <error statusCode="404" responseMode="ExecuteURL" path="/NotFound" /> <error statusCode="500" responseMode="ExecuteURL" path="/Error" /> </httpErrors> </system.webServer> 创建简单的错误控制器来处理这些请求ErrorContoller.cs [AllowAnonymous] public class ErrorController : Controller { // GET: Error public ActionResult NotFound() { var statusCode = (int)System.Net.HttpStatusCode.NotFound; Response.StatusCode = statusCode; Response.TrySkipIisCustomErrors = true; HttpContext.Response.StatusCode = statusCode; HttpContext.Response.TrySkipIisCustomErrors = true; return View(); } public ActionResult Error() { Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; Response.TrySkipIisCustomErrors = true; return View(); } } 配置路由RouteConfig.cs public static void RegisterRoutes(RouteCollection routes) { //...other routes routes.MapRoute( name: "404-NotFound",url: "NotFound",defaults: new { controller = "Error",action = "NotFound" } ); routes.MapRoute( name: "500-Error",url: "Error",action = "Error" } ); //..other routes //I also put a catch all mapping as last route //Catch All InValid (NotFound) Routes routes.MapRoute( name: "NotFound",url: "{*url}",action = "NotFound" } ); } 最后确保您拥有控制器操作的视图 Views/Shared/NotFound.cshtml Views/Shared/Error.cshtml 如果您要处理任何其他错误,可以按照该模式并根据需要添加.这将避免重定向并保持引发的原始http错误状态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET智能感知与客户端属性
- 从ASP.net Web服务返回大量数据时有哪些好的做法?
- 表现 – 异步等待:他们不好吗?
- asp.net-mvc – 吉米·博加德:“阿贾克斯非常非常谨慎地使
- asp.net-mvc – ACS安装,但MVC 4.0应用程序仍然重定向,无法
- asp.net-identity-2 – Asp.Net身份保存用户没有电子邮件
- ASP.NET MVC内联标记无法使用
- msbuild – 如何为ASP.NET 5项目设置TeamCity构建
- asp.net-web-api – 从OWIN中间件更改响应对象
- asp.net下使用jquery 的ajax+WebService+json 实现无刷新取
推荐文章
站长推荐
- iis-7 – Response.Redirect / End不在IIS7上的C
- asp.net-mvc-4 – MVC 4 – 从视图中的Controlle
- asp.net-mvc – IIS 7.0不显示自定义错误页面
- asp.net-mvc – ASP.NET MVC 3应用程序,BCrypt.C
- asp.net – Linux或OS X中的Web API 2.1
- asp.net – 前端头还是后端?
- asp.net-mvc – 在哪里提出持久性依赖的域事件 –
- asp.net – UserHostAddress提供错误的IP
- asp.net-mvc – 有没有办法让RoutePrefix以可选参
- JS_单个或多个文件上传_不支持单独修改
热点阅读