c# - MVC3 : How to handle constructor exception in controller?

标签 c# asp.net-mvc-3 coding-style

我有一个具有多种操作方法的 Controller ,需要来自某个数据库的相同数据列表。由于大多数操作都需要访问该列表,因此我直接在 Controller 的构造函数中快速填充了一个私有(private)成员变量,其中包含必要的数据项列表。

一切都很好,直到数据库崩溃并且构造函数中抛出异常。显然,这绕过了正常的 HandleError 功能。

我的目标是捕获此异常并将用户重定向到错误 View 。

  • 加载所有操作数据的正确方法是什么?
  • 将数据库调用放在 OnActionExecuting 中是否合适?
  • 是否有某种方法可以使用加载数据的属性来装饰特定操作?
  • 我是不是想太多了? (毕竟,我可以在 Controller 中放置一个私有(private)方法,然后从每个需要数据的操作中调用它)

最佳答案

您可以创建私有(private)方法并让它填充您的列表(如果尚未填充),然后返回该列表。这样,您只需在第一次需要时调用该方法来填充它,并且可以从 Controller 的构造函数中取出脆弱的代码。在操作方法中处理异常比在其他地方要容易得多。

关于c# - MVC3 : How to handle constructor exception in controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7855355/

相关文章:

unit-testing - MVC3 中的单元测试 Controller session 变量

c# - HttpException - Chrome 中超出了最大请求长度

asp.net-mvc-3 - ASP.NET MVC REST 框架

c++ - 可读性:拆分代码行,运算符应该在第一行还是第二行?

c# - 将xml树转换为json树

c# - C#中两个对象的相等性比较

C# 和 Selenium ;可以按 Windows 键吗?

c# - 如何使用反射调用具有通用返回类型的方法

c - 如何在 C 中制作一个简单的计算器来保存中间结果

java - 有没有正确的方法将特定的javascript语句翻译为java?