<%$, <%@, <%=, <%# ... what's the deal?
asp.net, server-tags
Solution
- `<% %>` - 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 for `Response.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
Problem
I've programmed in both classic ASP and ASP.NET, and I see different tags inside of the markup for server side code. I've recently come across a good blog on MSDN that goes over the difference between: - `<%=` (percentage together with equals sign) and - `<%#` (percent sign and hash/pound/octothorpe) (`<%#` is evaluated only at databind, and `<%=` is evaluated at render), but I also see: - `<%$` (percent and dollar sign) and - `<%@` (percent sign and at symbol). I believe `<%@` loads things like assemblies and perhaps `<%$` loads things from config files? I'm not too sure. I was just wondering if anyone could clarify all of this for me and possibly explain why it's important to create so many different tags that seemingly have a similar purpose?