What is the difference between <%: and <

2020-07-06 05:13发布

问题:

I can't find this info anywhere. Probably because Google is ignoring the keywords. Is there a difference between using <%: and <%= in your aspx page? They seem interchangeable.

回答1:

<%: %> is a new thing in ASP.NET MVC 2. It is the same as <%= Html.Encode("Text") %>. It is recommended to always use <%: %> unless you have some specific reason to not do so (for example, you are rendering data from some file or database that's already been encoded).



回答2:

The difference is :

<%= "my <text>" %> will output my <text>, which is incorrect HTML

<%: "my <text>" %> will output my &lt;text&gt;, which is better

More details here



回答3:

@ntcolonel is right on the money. Additionally, for cases where your data has already been encoded, provide it using anything implementing IHtmlString. This prevents double-encoding, and allows you to always use <%: %>.

I believe that ASP.NET 4 shops should gravitate toward enforcing <%: %> by policy.

Also, the new syntax is for ASP.NET 4 in general; not necessarily just MVC, which is great news for WebForms developers.