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 <text>
, 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.