6

当我使用 MVC 在 Visual Studio 中创建新控制器时,它会自动生成以下代码:

public class Default1Controller : Controller
{
    //
    // GET: /Default1/

    public ActionResult Index()
    {
        return View();
    }

}

我的 Default1Controller 从 Controller 继承,但我使用 BaseController 类,我总是必须记住更改继承。是否可以修改或创建新模板以自动为我的项目生成更具体的代码?

public class Default1Controller : BaseController
{
    //
    // GET: /Default1/

    public ActionResult Index()
    {
        return View();
    }

}

谢谢,

4

4 回答 4

5

你需要custom code generationMVC.

以下链接可能会有所帮助。

修改 ASP.NET MVC 中的默认代码生成/脚手架模板

并且

ASP.NET MVC 和 T4 和 NerdDinner

于 2012-06-15T10:59:11.440 回答
4

您必须修改基于“添加控制器”命令的 T4 模板。

转到 \Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController\ (替换为您的 VS 和 MCV 版本)并修改 Controller.tt

这条线public class <#= mvcHost.ControllerName #> : Controller应该变成public class <#= mvcHost.ControllerName #> : BaseController

更多细节可以在 Scott Hanselman 的博客上找到

于 2012-06-15T11:04:41.313 回答
3

您应该能够修改位于文件夹中的控制器 T4 模板,如下所示:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController

只需更改线路

public class <#= mvcHost.ControllerName #> : Controller

public class <#= mvcHost.ControllerName #> : BaseController

此外,Asif 提供的链接也很有用。

于 2012-06-15T11:05:50.417 回答
1

您需要覆盖 T4 模板,并且还可以使用脚手架来提高工作效率。这里有更多信息:MvcScaffolding:覆盖 T4 模板

于 2012-06-15T11:16:38.787 回答