2010-08-25 226 views

回答

14

在ASP.NET 4 <%: xyz %>語法會做同樣的事情,在<%= Server.HtmlEncode(xyz) %>以前的版本一樣。這只是一個捷徑,因爲它經常使用。

正如Richard在下面所說的那樣,它也可以根據是否實現IHtmlString接口來確定是否不需要對字符串進行編碼。

+2

它還提供了避免HTML編碼,如果表達式的類型實現了'IHtmlString'接口 - 那麼做自己編碼的類型不需要特殊的處理。 – Richard 2010-08-25 15:18:51

8

IIRC,<%:自動提供HTML編碼,所以你不必自己做。

Scott Guthrie's blog post

在ASP.NET 4中,我們引入了一個新 代碼表達式語法(<%: %>) 呈現像<%= %>塊 輸出做 - 但也自動HTML 做之前對其進行編碼所以。

閱讀博客文章瞭解更多詳情。

3

<%=直接注入值,而<%:自動轉義所有可怕的特殊字符給你。

換句話說,

<%: myString %>

相同

<%= Server.HtmlEncode(myString) %>