2009-06-30 109 views
0

以下摘自Professional ASP.NET MVC 1.0的第56頁。查看模板呈現<%= %>與<% %>之間的區別

當我們仔細查看Details.aspx模板時,會發現它包含靜態HTML以及嵌入式渲染代碼。代碼塊在視圖模板呈現時執行代碼,並且代碼塊執行其中包含的代碼,然後將結果呈現給模板的輸出流。

該聲明本質上是有道理的,但我無法清楚地向團隊成員清楚地說出它的含義。對於究竟發生什麼的更詳細的解釋是有用的。

從後面的章節中使用的一個示例:

<% foreach (var dinner in Model) { %> 
    <li> 
     <%= Html.Encode(dinner.Title) %> 
     on 
     <%= Html.Encode(dinner.EventDate.ToShortDateString())%> 
     @ 
     <%= Html.Encode(dinner.EventDate.ToShortTimeString())%> 
    </li> 
<% } %> 

回答

1

基本上<%%>只是執行代碼和doesn't輸出任何東西而<%=%>產生某種形式的輸出到瀏覽器的。

例如以<%foreach(var dinner in Model){%>。這條線只意味着我們循環一個集合,如果項目和必須有一些匹配的結束循環<%}%>頁面在語法上是正確的。由於這個循環本身沒有任何內容發送到瀏覽器。

使用<%= Html.Encode(dinner.Title)%>向瀏覽器發送內容。這將採用標題,HtmlEncodes晚餐的內容並將其寫入響應流。

相關問題