最初这将是一个问题,如何执行任务,但现在它已成为最佳实践问题。为什么MVC中Controller类的TryUpdateModel受到保护?
我正在使用MVC(对它还是新的),我试图创建一个任何控制器可以调用的方法,它将运行一个通用的功能。在该方法中,我需要运行控制器的TryUpdateModel方法。这是我遇到了障碍的地方 - 除非方法在控制器中,否则我无法执行此操作,因为TryUpdateModel由于其保护级别而无法访问 - 它被标记为“受保护”。如果我必须使这种方法对每个控制器都是私有的,那么它将首先破坏方法的全部目的,并且我会复制粘贴很多代码。
所以我想知道,为什么这种方法保护?当然,我一定会错过显而易见的东西。 (并请做棚灯)
我最终在创建自己的基类控制器类的控制器类时做了些什么。这个新的类包含我需要的所有控制器通用的方法。现在我的控制器继承自我构建的这个新的控制器类,而这个控制器类继承自基础控制器类。它运作良好,似乎很适合模型。
我的问题是 - 对于那些经常使用MVC的人来说,这是一个坏模式吗?采取这样一个中心阶级并且自己动手并使用它通常是一个糟糕的主意?
描述你想要做将有助于人们理解这个问题更好 – gideon 2011-04-16 18:57:00