What is the difference between <% %> and <%= %> in ASP.NET MVC? And when to use which?
<%= %> writes to the output stream (usually html) while <% %> is for executing arbitrary script code.
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.
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 blockAlso new in ASP.Net 4:
<%: - writes out to the page, but with HTML encoded<%= echos the statement out.
<% just runs it.