我有一个具有多种操作方法的 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/