Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制器定制脚手架_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 控制器定制脚手架

C# 控制器定制脚手架,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我在我的ASP MVC4应用程序中使用了repository模式,我认为创建自定义脚手架模板以避免每次生成代码时都对代码进行调整会很好 我学习了一些网络教程。我将CodeTemplates目录表单ProgramFiles复制到我的项目中(仅部分文件),并清除了每个文件的自定义工具属性 我设法实现了两个目标: 覆盖控制器的默认模板:当我转到控制器>添加>控制器并选择“具有读/写操作和视图的控制器…”时,它使用我的模板 添加新的视图模板:当我转到SomeViewFolder>add>view时,我

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

我学习了一些网络教程。我将CodeTemplates目录表单ProgramFiles复制到我的项目中(仅部分文件),并清除了每个文件的自定义工具属性

我设法实现了两个目标:

  • 覆盖控制器的默认模板:当我转到控制器>添加>控制器并选择“具有读/写操作和视图的控制器…”时,它使用我的模板
  • 添加新的视图模板:当我转到SomeViewFolder>add>view时,我可以在那里选择我的新模板
我无法实现的是创建一个新模板ControllerWithRepo.tt,并能够在Controller>Add>Controllers中选择它。即使我创建了ControllerWithRepo.tt,它也不会显示在模板下拉列表中

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

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


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

我能够通过遵循Steve Sandererson关于覆盖T4模板的内容来覆盖现有的ControllerWithRepository