什么是和我在哪里可以找到MvcTextTemplateHost

问题描述:

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

我读过这个

T4 References for 'MvcTextTemplateHost' and 'VisualStudio'

我只想知道这个类有什么属性和方法。我很喜欢t4文本编辑器。我安装了一些,但没有给我这个类的智能感谢,谢谢。

+0

相关:http://stackoverflow.com/questions/1045066/mvctexttemplatehost-not-found – 2013-04-17 23:19:07

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

所以它不是工具的使用之外。当您提供“脚手架”模板(.tt文件)时,管理员将这些用户输入传递给主机,以便主机具有这些属性。

类封装在: ($ VSDIR)\ Common7 \ IDE \ Microsoft.VisualStudio.Web.Mvc.3.01.dll

希望它能帮助。

在我的情况下,解决方案是。添加这些线连接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" #> 

好运

您可以在安装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 
... 

我安装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