【问题标题】:ASP.NET MVC exception handlingASP.NET MVC 异常处理
【发布时间】:2009-10-13 20:46:10
【问题描述】:

可以在控制器的操作中捕获我的异常吗?有没有更好的方法呢?我实际上是在控制器中捕获我的异常并使用 TempData 向用户显示消息,但我对这种方法有一种奇怪的感觉。我一直在四处浏览,但没有找到适合我的东西。

【问题讨论】:

标签: asp.net-mvc exception-handling tempdata


【解决方案1】:

您可以使用控制器类上的HandleError 属性来捕获任何未处理的异常,它会自动返回Shared 文件夹中的Error.aspx 视图。此属性有重载,因此您只能将其用于某些异常类型等。

有关此方法的更多信息,请查看 ScottGu 的帖子:http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx

【讨论】:

  • 这很有趣,但另一种方式我可以重定向到标准视图(例如“索引”)并针对具体异常显示个性化消息...
  • Error.aspx 页面与 HandleErrorInfo 类相关联,该类公开了异常的属性。如果您要发送个性化的异常消息,则可以将其呈现到视图中。 Steve Sanderson 的“Pro ASP.NET MVC 框架”一书介绍了一些方法,以及如何创建自己的异常过滤器。我建议拿起那本书。
  • 也许扩展 HandleError 以允许定义 TempData?我想我会对此进行调查。谢谢...
  • 仍然,不确定这是否是要走的路......:P
  • 在我看来您需要实现自己的异常过滤器。但在你这样做之前,我会退后一步,确保你没有过度复杂化可以使用内置 HandleErrorAttribute 异常过滤器完成的事情。
猜你喜欢
  • 2012-02-02
  • 2012-05-04
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2010-10-11
  • 1970-01-01
相关资源
最近更新 更多