控制器的定制脚手架

And*_*Gis 8 c# asp.net asp.net-mvc asp.net-mvc-4

我在我的ASP MVC4应用程序中使用存储库模式,我认为创建自定义脚手架模板以避免每次生成某些内容时调整代码都会很好.

我从网上学到了一些教程.我将CodeTemplates目录表格ProgramFiles复制到我的项目(只有部分文件),并清除了每个文件的自定义工具属性.

我设法实现了2个目标:

  • 覆盖控制器的默认模板:当我转到Controller> Add> Controllers并选择"带有读/写操作和视图的控制器......"时,它使用我的模板.
  • 添加一个新的视图模板:当我转到SomeViewFolder>添加>查看时,我可以在那里选择我的新模板.

我无法实现的是创建一个新的模板ControllerWithRepo.tt,并能够在Controller> Add> Controllers中选择它.即使我创建了ControllerWithRepo.tt,它也不会显示在模板下拉列表中.

我知道可以通过在ControllerWithContext.tt中硬编码来做我想要的事情 ,但它似乎是一个蹩脚的解决方案.我想以正确的方式 - 以传递存储库类而不是DbContext类并以我想要的方式生成控制器.

现在如果我尝试将我的存储库类作为dbcontext,它将无法执行脚手架.

总而言之,如何为存储库模式创建自己的控制器支架模板?

bar*_*rry 0

我能够按照 Steve Sandererson 的Overriding the T4 templates帖子来覆盖现有的 ControllerWithRepository 。