Они не одинаковы:
<%=%> is the same as `Response.Write`
<%:%> adds `Server.HtmlEncode` to `Response.Write`
Следовательно, <%:%>
является предпочтительным (добавлено начиная с .NET 4.0), так как добавляет меру безопасности кодирования вывода перед выводом строки.
Если вы используете .NET 3.5 или более раннюю версию, рекомендуется использовать <%=Server.HtmlEncode(val)%>
.