<#=#>是什么意思?

时间:2012-08-08 23:39:48

标签: asp.net .net syntax expression t4

阅读Code Generation and T4 Text Templates,我发现此语法<#= DateTime.Now#>

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

它与<%= DateTime.Now %><%# DateTime.Now %>的区别如何。

谷歌搜索没有显示任何内容

1 个答案:

答案 0 :(得分:4)

我不能声称自己熟悉T4文本模板,但看起来区别在于设计/构建时代码生成(可以包含可执行语句)和运行时代码执行。

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

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

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

  

表达式控制块

     

表达式控制块评估表达式并将其转换为   一个字符串。这将插入到输出文件中。

     

表达式控制块由符号&lt;#= ...#&gt;

分隔      

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

     

<#= 2 + 3 #>

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