我想从我自己编写的自定义基类继承所有控制器。我可以在每次添加新控制器时更改该行,但如果我可以指定在那里设置的默认值,那么它会更好。这样我就不用担心会忘记这一点,而其他稍后加入项目的人会有更轻松的时间。
有没有办法实现这个目标?
答案 0 :(得分:3)
您可以自定义在调用Add Controller操作时使用的T4模板。基本上你必须将模板从C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController\Controller.tt
复制到项目文件中的'〜\ CodeTemplates \ AddController \ Controller.tt`。
更多可用信息here(向下滚动到“添加和自定义脚手架模板”)
答案 1 :(得分:0)
是的,这是一件容易的事。首先创建一个名为“BaseController”的类,例如,它继承自Controller。然后所有控制器都将从BaseController继承。
编辑:我认为使用T4模板生成你的服装控制器(称为BaseController或者控制器 - 你喜欢哪个)也可以。我见过Scot Hanselman在他的一次演讲中做了类似的事情。
答案 2 :(得分:0)
您可以使用命名空间来执行此操作:在与控制器相同的命名空间中创建一个名为Controller的类,例如:
namespace UI.Controllers
{
public class Controller : System.Web.Mvc.Controller
{
//Code here
}
}
然后对Controller的标准非限定引用将引用您的基类而不是System.Web.Mvc.Controller。
虽然可能会让人感到困惑 - 我宁愿只记得引用基类。