<%$, <%@, <%=, <%# … what's the deal?

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?


Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Method 2

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 “<%$“.

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x