这种将 ELMaH 与 MVC 结合使用的方法有味道吗?
-
19-09-2019 - |
题
我一直在寻找一些将 ELMaH 与 ASP.Net MVC 结合使用的方法,以便我可以对包括 404 在内的所有异常使用自定义错误页面。
有 不缺 的 问题 询问 如何让 /Shared/Error.aspx 在 ASP.Net MVC 中正常工作 - 无论是否有 ELMaH。我对这项任务没有遇到任何问题,但我觉得我的解决方案与 ELMaH 一起使用自定义 404 页面太简单了,我无法摆脱应该有更多内容的感觉。
在 Web.Config 中启用 customErrors 后,我在 HomeController 中创建了一个新操作:
public ActionResult PageNotFound()
{
return null;
}
从那里,我在 Global.asax 文件中添加了一个新方法,以利用 ELMaH 的日志过滤功能,并在记录异常后,将响应重定向回上述内容 PageNotFound
行动结果:
public void errorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
if (e.Exception.GetType().Equals(typeof(HttpException)))
{
HttpException ex = (HttpException)e.Exception;
if (ex.GetHttpCode() == 404)
Response.Redirect("/Home/PageNotFound");
}
}
我是否忽略了 MVC 默认附带的某些内容(因为我仍在寻找有关 MVC 的许多内容的方法),或者过度思考存在更简单解决方案的问题?感谢任何输入。
解决方案
我确信 ASP.NET 可以为您处理此类事情,您不一定需要调用任何内容来重定向到 global.asax 中的 404 操作。请参阅下面的示例。
<configuration>
<system.web>
<customErrors mode="On">
<error statusCode="404" redirect="/servererrors/404.aspx" />
</customErrors>
</system.web>
</configuration>
不隶属于 StackOverflow