[英]What are the difference between <%: and <%= in ASP .NET MVC 3
我只是想知道,我所知道的唯一區別是<%=符號會生成您計划顯示的字符串中包含的所有可能的html標簽,而<%:僅顯示字符串的確切外觀。 如果有人可以幫助我,我將不勝感激。
兩個內聯代碼標簽在本質上是相同的,唯一的區別是<%:%>將自動使用編碼。 所以這:
<%: myText %>
等效於此:
<%= Html.Encode(myText) %>
建議使用前者。
Scott Gu的很好解釋-ASP.NET 4(和ASP.NET MVC 2)中HTML編碼輸出的新<%:%>語法
摘抄:
ASP.NET應用程序(尤其是那些使用ASP.NET MVC的應用程序)通常依賴於使用<%=%>代碼塊表達式來呈現輸出。 如今,開發人員經常在這些表達式中使用Server.HtmlEncode()或HttpUtility.Encode()幫助器方法對輸出進行HTML編碼,然后再呈現輸出。 可以使用以下代碼完成此操作:
<div>
<%= Server.HtmlEncode(Model.Content) %>
</div>
盡管這很好用,但它有兩個缺點:
這有點冗長,開發人員經常忘記調用Server.HtmlEncode方法,並且沒有簡單的方法來驗證其在整個應用程序中的使用情況
新的<%:%>代碼塊語法
在ASP.NET 4中,我們引入了一種新的代碼表達式語法(<%:%>),該語法可以像<%=%>塊一樣呈現輸出-但也可以在執行此操作之前自動對其進行HTML編碼。 這樣就無需像上面的示例中那樣對HTML內容進行顯式編碼。 相反,您可以編寫下面更簡潔的代碼來完成完全相同的操作:
<div>
<%: Model.Content %>
</div>
<%:
是HtmlEncoded。 asp.net的代碼塊
在ASP.NET 4中,我們引入了一種新的代碼表達式語法(<%: %>)
,該語法可以像<%=%>塊一樣呈現輸出-但也可以在執行此操作之前自動對其進行HTML編碼。
來自Scott Gu博客:
在ASP.NET 4中,我們引入了一種新的代碼表達式語法(<%:%>),該語法可以像<%=%>塊一樣呈現輸出-但也可以在執行此操作之前自動對其進行HTML編碼。 這樣就無需像上面的示例中那樣對HTML內容進行顯式編碼。 相反,您可以編寫下面更簡潔的代碼來完成完全相同的操作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.