控制器的定制脚手架

时间:2012-11-05 14:40:10

标签: c# asp.net asp.net-mvc asp.net-mvc-4

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

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

我设法实现了2个目标:

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我能够通过跟随Steve Sandererson的post覆盖覆盖T4模板来覆盖现有的ControllerWithRepository。