asp.net-mvc – 如何处理MVC5中的配置和代码中的404错误?
发布时间:2020-05-23 22:49:00 所属栏目:asp.Net 来源:互联网
导读:我已经实现了以下链接中提到的异常处理 How to pass error message to error view in MVC 5? 它工作正常.但我要求处理404错误. 我怎样才能做到这一点? 如果我使用下面的代码, customErrors mode=On error statusCode=404 redirect=/Home/Error/error/cus
|
我已经实现了以下链接中提到的异常处理 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-mvc – Asp.Net MVC CSLA DDD可能
- 如何向ASP.NET Core 1.0 MVC项目添加项目引用
- asp.net – 在开发系统上禁用OutputCache
- ASP.NET MVC与Web客户端软件工厂(WCSF)
- asp.net – 如何验证文件上传的文件类型?
- 在ASP.NET中检测来自移动浏览器的请求
- ASP.net RequiredFieldValidator不阻止回发
- asp.net-membership – 成员资格超时和会话超时
- 如何在asp.net webform中使用异步/等待实现异步页面?
- iis – ServerManager构造函数在测试环境中崩溃
推荐文章
站长推荐
- asp.net-mvc – warns – html.helpers在项目更新
- 问题在ASP.NET 5(Core)中添加对类库项目的引用
- asp.net-mvc – MVC控制器操作参数为null
- 具有匹配客户端和服务器端标记的ASP.NET页面的选
- asp.net-mvc – 刷新IdentityServer4客户端中的访
- asp.net – Web.config Build vs Release transf
- asp.net-mvc-3 – 如何在MVC3中限制FileUpload中
- ASP.Net验证器默认样式
- asp.net-mvc – ASP.NET MVC – 无法绑定数组以查
- asp.net – 自动将视频格式转换为Flash Video
热点阅读
