【问题标题】:Visual Studio Project template wildcards ignored in View (.cshtml) files在视图 (.cshtml) 文件中忽略 Visual Studio 项目模板通配符
【发布时间】:2013-03-19 22:58:13
【问题描述】:

我正在为 MVC 4 入门项目创建项目模板。

在任何普通的基于类的代码文件中,我可以为Visual Studio编写以下语法,用用户在创建新项目时最初提供的项目名称填充这个$safeprojectname$通配符。

namespace $safeprojectname$.Models
{
    public class Class1
    {     
        public bool blah { get; set; }
    }
} 

但是我的问题是,对于任何视图文件 (*.cshtml),这些模板通配符根本不会被评估。因此,通配符原始文本不会被替换,而是保留在标记中,这反过来会在运行项目时破坏预处理器逻辑。

视图文件代码的示例。

@model $safeprojectname$.Models.NavigationBarModel

有解决办法吗?

【问题讨论】:

    标签: asp.net-mvc visual-studio project-template


    【解决方案1】:

    我最终发现了这一点以及其他一些问题。

    生成的 .vstemplate 文件为导出的模板中包含的每个资源创建一个 <ProjectItem> 元素。

    ReplaceParameters 属性需要手动为视图设置为 true,默认设置为 false。

    <Folder Name="Shared" TargetFolderName="Shared">
      <ProjectItem ReplaceParameters="true" TargetFileName="_Layout.cshtml">_Layout.cshtml</ProjectItem>
      <ProjectItem ReplaceParameters="true" TargetFileName="_LoginPartial.cshtml">_LoginPartial.cshtml</ProjectItem>
      <ProjectItem ReplaceParameters="true" TargetFileName="_NavigationBar.cshtml">_NavigationBar.cshtml</ProjectItem>
      <ProjectItem ReplaceParameters="true" TargetFileName="Error.cshtml">Error.cshtml</ProjectItem>
    </Folder>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      相关资源
      最近更新 更多