<%$, <%@, <%=, <%# ... what's the deal?
<% %>
- is for inline code (especially logic flow)<%$ %>
- is for evaluating expressions (like resource variables)<%@ %>
- is for Page directives, registering assemblies, importing namespaces, etc.<%= %>
- is short-hand forResponse.Write
(discussed here)<%# %>
- is used for data binding expressions.<%: %>
- is short-hand for Response.Write(Server.HTMLEncode()) ASP.net 4.0+<%#: %>
- is used for data binding expressions and is automatically HTMLEncoded.<%-- --%>
- is for server-side comments
You've covered 2 of them (<%# is evaluated only at databind, and <%= is evaluated at render), and the answer for "<%@
" is that it's compiler directives (ie., stuff like what you'd put on a compiler's command line).
I don't know about "<%$
".