在 ASP.NET MVC 中,为什么我不在基本控制器上附加 HandleError 并完成它呢?
由于 HandleError 是由派生控制器继承的,为什么我不创建(或拥有)一个基本控制器,并在其上应用 HandleError ,以便从基本控制器继承的任何控制器也将自动处理?
然后我会在控制器和单个操作上重写 HandleError。
谁能想到我不想将 HandleError 应用于基本控制器的任何原因吗?
Since HandleError is inherited by the derived Controllers, why wouldn't I just create (or have) a base controller, and apply HandleError on it so that any controllers that inherits from the base controller will automatically be handled as well?
And then I would tack on overriding HandleError on controllers and individual actions.
Can anyone think of any reason why I wouldn't want to apply HandleError to the base controller?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我知道这个问题已经很老了,但如果您现在使用 MVC 3,我建议您改用全局过滤器。请参阅 Scott Guthrie 的帖子 此处
I know this question is old, but if you're now using MVC 3 I'd suggest using a global filter instead. See the Global Filters section of Scott Guthrie's post here
对我来说,基本控制器上的 HandleError 就像用 try{} catch{} 块包围整个应用程序。您基本上已经停止处理异常,就像异常使它们在您的应用程序中正常发生一样。
你只能“捕捉”你知道可能发生的事情,而不是所有可能发生的事情。
To me HandleError on a base controller is like surrounding your entire application with a try{} catch{} block. You've essentially stopped treating exceptions like exceptions made them a normal occurrence in your application.
You could only "catch" what you know may happen and not everything that may happen.