5

阅读代码生成和 T4 文本模板,我发现了这种语法 <#= DateTime.Now #>

<html><body>
 The date and time now is: <#= DateTime.Now #>
</body></html>

它与<%= DateTime.Now %>或有何不同<%# DateTime.Now %>

谷歌搜索什么也没显示

4

1 回答 1

4

我不能声称对 T4 文本模板非常熟悉,但似乎区别在于设计/构建时代码生成(可以包括可执行语句)和运行时代码执行之间。

因此<#= #>计算用于生成文件的模板中的表达式。

<%= %>执行块内的代码并将其写入输出流。这将在页面第一次执行时进行 JIT 编译,但关键是它表示在页面运行时执行的代码块,而不是在模板文件的生成期间。

第三种形式,<%# %>表示数据绑定表达式,也在页面执行时进行评估。

表达式控制块

表达式控制块计算表达式并将其转换为字符串。这被插入到输出文件中。

表达式控制块由符号 <#= ... #> 分隔

例如,以下控制块导致输出文件包含“5”:

<#= 2 + 3 #>

来源:http: //msdn.microsoft.com/en-us/library/bb126478

于 2012-08-08T23:48:10.737 回答