我在哪里可以找到MvcTextTemplateHost

时间:2011-06-12 08:06:11

标签: t4

我想知道这是什么MvcTextTemplateHost。我在我的create.tt中有这个,但我无法在我的bin文件夹中找到它(使用对象查看器搜索)。我读了,发现它在我的脑海里 VisualStudio.Extensions.web.dll,但我找不到这个DLL

我已经读过这个

T4 References for 'MvcTextTemplateHost' and 'VisualStudio'

我想知道这个类有哪些属性和方法。我想要一个t4文本编辑器。我安装了一些,但没有什么能让我为这堂课提供智能感谢。

4 个答案:

答案 0 :(得分:6)

MvcTextTemplateHost是MVC 3.0的“主机”(添加>查看和添加>控制器)对话框并维护用户互动:

因此在工具之外无法使用。当您提供“脚手架”模板(.tt文件)时,管理员会将这些用户输入传递给主机,因此主机将具有这些属性。

该课程包装在: ($ VSDIR)\ Common7 \ IDE \ Microsoft.VisualStudio.Web.Mvc.3.01.dll

希望它有所帮助。

答案 1 :(得分:1)

就我而言,解决方案是。添加这些行en controllerWithContext.tt

<#@ assembly name="C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Microsoft.VisualStudio.Web.Mvc.3.01.dll" #>

旁边:

<#@ import namespace="System.Reflection" #>

之前:

<#@ import namespace="Microsoft.VisualStudio.Web.Mvc.Scaffolding.BuiltIn" #>
祝你好运

答案 2 :(得分:0)

你可以在VS安装方向找到所有.tt文件,例如获取MVC4 .tt文件,转到:($ VSDir)\ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 4 \ CodeTemplates

要获取MvcTextTemplateHost的属性列表,因为它们是动态的,您可以将以下代码添加到.tt文件中:

<#
Type myType = mvcHost.GetType();
IList<PropertyInfo> props = new List<PropertyInfo>(myType.GetProperties());

foreach (PropertyInfo prop in props)
{
#>
    <#= prop.Name #>
<#
}
#>

我在MVC4中创建列表视图时运行它,并且出现了一些属性:

ViewName 
IsPartialView 
IsContentPage 
ReferenceScriptLibraries
AutoEventWireup 
MasterPageFile 
...

答案 3 :(得分:0)

在安装T4模板以修改此问题中描述的Visual Studio自动生成的CRUD页面后,我遇到了同样的问题:How do I create my own Scaffold Template in ASP.NET MVC 3?

我的解决方案就是关闭Visual Studio 2012并说“是”以保存解决方案。当我重新打开它时,一切都被编译好了,神奇地。对这个答案的评论表明这适用于类似的情况:https://stackoverflow.com/a/13816299/176877

相关问题