档案 - >用于生成具有虚拟操作的控制器的ASP.NET MVC项目的新项目。我不确定MVC 2或MVC 3是否停止了,但这不再是最佳做法吗?
答案 0 :(得分:7)
T4MVC是否将动作方法设为虚拟。如果您正在使用它,它应该使动作方法成为虚拟,没有其他方式可以使用
答案 1 :(得分:2)
ASP.NET MVC 3的current documentation不显示虚拟方法。我不确定是什么让他们virtual
能够获得你,因为我从未将控制器子类化以覆盖行动。
答案 2 :(得分:1)
如果你将它们变为虚拟,那么如果你在测试中使用它们,它将使控制器更容易被模拟。
答案 3 :(得分:0)
生成的代码可能因各种原因而变为虚拟。除非某些工具需要,否则将自己的代码设置为虚拟是不好的做法。见Liskov替代原则和开放/封闭原则。我认为有些框架可以帮助创建代理,但我无法想象有什么理由让你的所有方法都是虚拟的。对我来说,它尖叫复制/粘贴或货物崇拜程序员。