2010-04-20 80 views

回答

41

冒號語法意味着你將自動HTML編碼:http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

他們不能只是HTML編碼所有現有<%=塊,因爲事情已經正確編碼(這是最有希望的項目了那裏)看起來很奇怪。

+0

+1爲您鏈接的偉大閱讀。 – 2010-04-20 15:14:29

+0

謝謝@bears。 phil的博客是一個必讀 - 尤其是如果你正在使用ASP.NET MVC – 2010-04-20 15:31:21

+2

我喜歡冒號相等的引用,但從側面看:-) – 2010-04-20 15:50:01

5

ASP .NET 4引入了<%:在將其輸出到屏幕之前編碼輸出的語法。 ASP MVC已經對此進行了編碼,但是爲了更加明確,他們開始使用語法來清楚地表明,只要你看到<%:你可以確定輸出將被正確編碼。

+2

你在這裏丟失的關鍵詞是「HTML」,如「HTML編碼」 - 而不僅僅是「編碼」。 – 2010-04-20 15:39:47

+0

我很確定在.net 4之前引入了<%:語法。 – Losbear 2013-01-26 02:04:33

+0

它是.net 4:http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt -syntax換HTML編碼 - 輸出 - 在-ASP-淨-4-和-ASP淨MVC-2.aspx – 2013-01-26 21:48:12

12

<%=用於寫入輸出緩衝區。

<%:用於在HTML編碼內容後寫入輸出緩衝區......除非在返回的對象上實現了IHtmlString接口。

斯科特·格思裏有關於這一主題的優秀帖子: 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

如果輸出已經逃脫,雙編碼可以通過返回的對象上執行IHtmlString接口來防止。 http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx

相關問題