What is the difference between <%#%> and <%=%>?

Answer Posted / vinodh reddy

I was a little confused about the difference between <%=
expression %> and <%# expression %> in ASP.NET. It seems
like both work in a lot of cases, but in other cases, only
the # (data binding) version works. So, I decided to dig
into it a little bit. To try it out I built this simple
page:

<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" ><head
runat="server"> <title>Untitled
Page</title></head><body> <form id="form1"
runat="server"> <div> <p>Equals: <%=
this.TestValue %></p> <p>Pound: <%# this.TestValue %
></p> <p>Equals label: <asp:Label runat="server"
ID="_equals" Text="<%= this.TestValue %>" /></p>
<p>Pound label: <asp:Label runat="server" ID="_pound"
Text="<%# this.TestValue %>" /></p> </div>
</form></body></html>
And the code behind is:

public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e)
{ _testValue = "2"; } protected void
Page_PreRenderComplete(object sender, EventArgs e)
{ // DataBind(); _testValue = "3"; }
public string TestValue { get { return
_testValue; } } private string _testValue = "1";}
Here's what the result is when the DataBind() line is
commented out:

Equals: 3

Pound:

Equals label:

Pound label:

And, when it's not commented out:

Equals: 3

Pound: 2

Equals label:

Pound label: 2

At first glance it looks like the Equals label case did
nothing. But, if you view source, you see:

<p>Equals label: <span id="_equals"><%= this.TestValue %
></span></p>

The literal expression made it down to the browser and it's
just invalid HTML. What you can see as a result is:

The <%= expressions are evaluated at render time
The <%# expressions are evaluated at DataBind() time and
are not evaluated at all if DataBind() is not called.
<%# expressions can be used as properties in server-side
controls. <%= expressions cannot.

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is the difference between visual basic and asp.net?

524


What is latest version of asp.net mvc? : Asp.Net MVC

481


Where would you use an ihttpmodule, and what are the limitations if any?

534


What threading model used in asp and asp.net?

578


What are the Types of objects in ASP

588






How to create multi language website in asp.net mvc? : Asp.Net MVC

499


What are the asp.net server side objects?

523


What is the procedure to create the environment for asp.net? : asp.net mvc

519


What is a master page and what does it do?

539


What do you mean by caching in asp.net?

552


Which two new properties are added in asp.net 4.0 page class?

529


What is different authentication mechanisms used in ASP.NET?

591


What is %20 in a url?

546


What is a swagger in web api?

540


Can you explain why it is useful to use mvc instead of webforms? : asp.net mvc

546