2010-10-12 202 views

回答

5

區別在於<%:自動對HTML進行編碼,而<%=沒有。

在MVC2推出之前,爲了對HTML字符串進行編碼,您必須在視圖中使用Html.Encode()方法。

<%= Html.Encode(Model.MyString) %> 

然而,隨着MVC2他們加入<%:標籤,其輸出相同的事情,但處理HTML編碼爲您服務。

<%: Model.MyString %> 

作爲一個經驗法則,你應該使用<%總是輸出你的字符串:標籤,除非你有一個很好的理由不這樣做。

結賬Scott Gu's blog瞭解更多信息。

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

3

從本質上講,<%:標籤編碼尚未被編碼的任何字符串。所以:

<%: Model.Title %> 

...是一樣的:

<%= Server.HtmlEncode(Model.Title) %> 

但是如果你不小心使用標籤的地方是沒有必要的:

<%: Html.TextBoxFor(Model => Model.Title) %> 

...這將與以前一樣:

<%= Html.TextBoxFor(Model => Model.Title) %> 

請參閱http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx的完整說明。

相關問題