2013-03-19 42 views
0

我正在爲MVC 4初學者項目創建項目模板。在View(.cshtml)文件中忽略Visual Studio項目模板通配符

在任何基於普通類的代碼文件中,我可以爲Visual Studio編寫以下語法,以便在創建新項目時使用用戶最初提供的項目名填寫此$safeprojectname$通配符。

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

但是我的問題是,對於任何視圖文件(* .cshtml),這些模板通配符根本不會被評估。因此,通配符原始文本不會被替換,而會保留在標記中,從而在運行項目時反過來炸燬預處理器邏輯。

查看文件代碼的例子。

@model $safeprojectname$.Models.NavigationBarModel 

有沒有解決方案?

回答

0

我最終想到了這一點以及其他一些陷阱。

生成的.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> 
相關問題