What is the difference between <% %>
and <%= %>
in ASP.NET MVC? And when to use which?
Asked
Active
Viewed 1,871 times
15

Graviton
- 81,782
- 146
- 424
- 602
4 Answers
37
See also this question. MVC hasn't changed how these bee-stings work, just how often they're used.
Basically:
<%
- execute code<%@
- page directive<%$
- resource access<%=
- explicit output to page<%#
- data binding<%--
- server side comment block
Also new in ASP.Net 4:
<%:
- writes out to the page, but with HTML encoded
-
4bee-stings, nice, hadn't heard that one.. :) great response btw – Jeff Atwood Oct 13 '08 at 09:35
10
<%= %> writes to the output stream (usually html) while <% %> is for executing arbitrary script code.

Tahir Akhtar
- 11,385
- 7
- 42
- 69
8
Say you have a method on your page, called "SayHello":
protected string SayHello()
{
return "Hello!";
}
And on your page, you have these statements:
first: <%= SayHello() %>
second: <% SayHello() %>
Your output will be:
first: Hello!
second:
when you use <%= %>, what you put in there is inserted into the html at that position. If you use <% %>, you're just inserting some code into your page.

Erik van Brakel
- 23,220
- 2
- 52
- 66