В заголовке содержится весь мой вопрос.
<% /* Is a codeblock */ for(int i = 0;i<5;i++) { } %> <%= "Writes something to the output stream" /* Response.Write */ %> <%: "HTML-encodes this <b>hello</b> to the output stream" %>
Подробное описание синтаксиса <%, <% = и <% # и их использования см. В статье <a href="http://quickstarts.asp.net/QuickStartv20/aspnet/doc/pages/syntax.aspx" rel="nofollow noreferrer"> .
Синтаксис <%: является новым в .Net 4 и используется для кодирования вывода HTML. См. <a href="http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx" rel="nofollow noreferrer"> эту статью ScottGu для получения дополнительной информации об этом.
<% %> используется только для выполнения кода на стороне сервера ех. <% if(oject){...} %>
<% %>
<% if(oject){...} %>
<%= %> используется для выполнения кода на стороне сервера и возврата значения ех. <%=Html.Encode(Item["Name"]) %>
<%= %>
<%=Html.Encode(Item["Name"]) %>
<%: %> используется для выполнения кода на стороне сервера, но он вернет Html Кодированная строка ех. <%Item["Name"] %>
<%: %>
<%Item["Name"] %>
Источник: В чем разница между этими тегами <%, <%: и <% = в ASP.NET MVC 2? </a>