Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between <%# %> and <%= %>?

Tags:

.net

asp.net

Pardon my ASP ignorance, but what's the difference?

like image 928
Esteban Araya Avatar asked Oct 01 '08 22:10

Esteban Araya


2 Answers

These are somewhat informally referred to as "bee stings". There are 4 types:

<%# %> is invoked during the DataBinding phase.

<%= %> is used to get values from code to the UI layer. Meant for backward compatibility with ASP applications. Shouldn't use in .NET.

<%@ %> represents directives and allow behaviors to be set without resorting to code.

<%: %> (introduced in ASP.NET 4) is the same as %=, but with the added functionality of HtmlEncoding the output. The intention is for this to be the default usage (over %=) to help shield against script injection attacks.

Directives specify settings that are used by the page and user-control compilers when the compilers process ASP.NET Web Forms pages (.aspx files) and user control (.ascx) files.

ASP.NET treats any directive block (<%@ %>) that does not contain an explicit directive name as an @ Page directive (for a page) or as an @ Control directive (for a user control).

@Esteban - Added a msdn link to directives. If you need...more explanation, please let me know.

like image 87
Swati Avatar answered Nov 15 '22 12:11

Swati


See http://weblogs.asp.net/leftslipper/archive/2007/06/29/how-asp-net-databinding-deals-with-eval-and-bind-statements.aspx

As Albert says, it's all to do with parsing databinding statements.

like image 37
Oli Avatar answered Nov 15 '22 12:11

Oli