Can you tell the differences between <%= %>

2020-05-15 06:51发布

问题:

Can you briefly list the differences between <%= %>, <%# %> and <%$ %> by giving a simple example?

Maybe one that requires only one of those expressions to be used?

回答1:

<% %>

<% this.CallMethod() %> - Basic code block that executes the statements inside.


<%= %>

<%= "text" %> - Embedded code syntax. Same as writing <% Response.Write("text") %>.


<%: %>

<%: "text" %> - Same as above except it's a shorthand for <%= Server.HtmlEncode("text") %>. This was introduced in ASP.NET 4 and is the default syntax used.


<%# %>

<%# Eval("ColumnName") %> - Used for databinding.


<%$ %>

<%$ AppSettings: settingName %> - The expression syntax has a prefix such as AppSettings, ConnectionStrings, or Resources and then a : followed by the actual expression. It can be used as a shorthand to access resources inline. You can even create your own syntax used here (Thanks @Thomas Levesque). Also see MSDN for more info.


<%@ %>

<%@ Page language="C#" %> - The directive syntax useful for page/control settings.


<%-- --%>

<%-- This is a comment --%> - Server-side comment syntax. This differs from the HTML <!-- a comment --> syntax in that it won't be rendered in the output.