【问题标题】:Trying to use MVCScaffolding to create Views with problems尝试使用 MVCScaffolding 创建有问题的视图
【发布时间】:2012-12-16 18:08:12
【问题描述】:

注意:我查看了此链接并禁用了 CustomTools,但仍然收到此错误:MvcTextTemplateHost not found

我正在尝试在一个命令中为创建、更新、详细信息、过滤器和列表操作创建自定义视图。我可以通过右键单击并选择新视图一次添加它们,但是当我输入 Scaffold AddView SampleModel 时,我收到以下错误消息:

找不到类型或命名空间名称“MvcTextTemplateHost”(您是否缺少 using 指令或程序集引用?)。

模板文件是 AddView.cs.t4。我尝试将其重命名为 .tt 但我无法让 Powershell 查找 .tt 文件。有任何想法吗?

【问题讨论】:

    标签: asp.net-mvc templates powershell t4 asp.net-mvc-scaffolding


    【解决方案1】:

    MvcScaffolding 使用自己的自定义模板主机,不使用 MvcTextTemplateHost。我会看一下 MvcScaffolding NuGet package 中包含的 T4 模板。其中一个模板的开头如下所示。

    <#@ Template Language="C#" HostSpecific="True" Inherits="DynamicTransform" #>
    <#@ Output extension="aspx" #>
    <# var viewDataType = (EnvDTE.CodeType) Model.ViewDataType; #>
    

    【讨论】:

    • Model.ViewDataType和MvcTextTemplateHost有区别吗?
    • 是的,它们是不同的。 Model 和 Model.ViewDataType 是不同的对象。 MvcScaffolding 根据您尝试搭建的模型构建此动态模型对象 (Model),并添加可在 T4 模板中使用的额外属性。 Model.ViewDataType 返回视图的类型。它用于在生成视图时使您的视图具有强类型。此模型对象上还有许多其他可用属性,您可以看到它们在 MvcScaffolding NuGet 包中包含的 T4 模板中使用。
    猜你喜欢
    • 2013-11-20
    • 1970-01-01
    • 2023-03-30
    • 2022-11-03
    • 2013-10-02
    • 2021-08-25
    • 1970-01-01
    • 2019-04-19
    • 2012-06-05
    相关资源
    最近更新 更多