您的位置:首页 > 其它

vs2013中,自定义mvc 添加视图脚手架

2014-01-16 15:56 441 查看
参考文章:

http://weblogs.asp.net/imranbaloch/archive/2013/09/15/customizing-the-asp-net-mvc-5-web-api-2-scaffolding-templates.aspx

http://www.hanselman.com/blog/ModifyingTheDefaultCodeGenerationscaffoldingTemplatesInASPNETMVC.aspx

mvc5的脚手架位置与之前的有点不一样



C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates

之前是在

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

在自己的项目里,建立一个 CodeTemplates 文件夹

下面有一个 MvcView文件夹

在此文件夹中建立 Create1.cs.t4





在controller里,使用添加视图,就可以找到这个模板了。

如果你是把默认的copy过来,修改的,那只copy这一个是不行的,因为里面有一些对其他模板的引用

要么,全copy过来,要么把引用的地方换成具体的内容

另外,copy来的模板里有这么一句

<script src="~/Scripts/jquery-<#= JQueryVersion #>.min.js"></script>

其中的变量JQueryVersion我没找到是哪里定义的,copy代码过来,这个玩意会报错

 

模板参数

<#@ parameter type="System.String" name="ViewDataTypeName" #>
<#@ parameter type="System.String" name="ViewDataTypeShortName" #>
<#@ parameter type="System.Boolean" name="IsPartialView" #>
<#@ parameter type="System.Boolean" name="IsLayoutPageSelected" #>
<#@ parameter type="System.Boolean" name="ReferenceScriptLibraries" #>
<#@ parameter type="System.Boolean" name="IsBundleConfigPresent" #>
<#@ parameter type="System.String" name="ViewName" #>
<#@ parameter type="System.String" name="LayoutPageFile" #>
<#@ parameter type="Microsoft.AspNet.Scaffolding.Core.Metadata.ModelMetadata" name="ModelMetadata" #>






参数与界面上的东西基本是对应的。

至少是要指定一个模型类的

如果你想要创建不太模型的脚手架,类似默认提供的 Empty(不具有模型)

你需要把t4放在 MvcViewWithoutModel 文件夹下







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: