5

コード生成とT4テキストテンプレートを読んで、この構文を見つけました<#= DateTime.Now#>

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

またはとどう違うのです<%= DateTime.Now %><%# DateTime.Now %>

Google検索は何も表示しませんでした

4

1 に答える 1

4

T4テキストテンプレートに精通しているとは言えませんが、設計/ビルド時のコード生成(実行可能ステートメントを含めることができます)と実行時コードの実行の違いは明らかです。

したがって<#= #>、ファイルの生成に使用されるテンプレート内の式を評価します。

そして<%= %>、ブロック内のコードを実行し、それを出力ストリームに書き込みます。これは、ページが最初に実行されるときにJITコンパイルされますが、重要なのは、テンプレートファイルの生成中ではなく、ページの実行時に実行されるコードのブロックを示すということです。

3番目の形式<%# %>は、データバインディング式を示し、ページの実行時にも評価されます。

式制御ブロック

式制御ブロックは、式を評価して文字列に変換します。これは出力ファイルに挿入されます。

式制御ブロックは、記号<#= ...#>で区切られています。

たとえば、次の制御ブロックにより、出力ファイルに「5」が含まれます。

<#= 2 + 3 #>

ソース: http: //msdn.microsoft.com/en-us/library/bb126478

于 2012-08-08T23:48:10.737 に答える