El libro es casi correcta:
<% %>
pepitas de código ejecutar código cuando la plantilla de vista hace. Por lo tanto, si realiza una llamada a la función <div><% MyFunc() %></div>
, su función se ejecutará en el momento de la renderización después de abrir la etiqueta si se representó div pero antes de que se procesara la etiqueta de cierre. La función puede hacer lo que quiera, verificar algunas condiciones y fallar con excepción, establecer algunas variables, usar HttpContext.CurrentContext.Response.Write
(o solo Response.Write
en formularios web) para escribir en el flujo de respuesta.
<%: %>
code nuggets ejecutan el código que contienen y luego muestran el resultado html codificado en la secuencia de salida de la plantilla. es decir que es la misma que <% HttpServerUtility.HtmlEncode(HttpContext.CurrentContext.Response.Write(MyFunc()))%>
<%= %>
pepitas de código de ejecutar el código contenida dentro de ellos y, a continuación hacen que el resultado sin html codificación al flujo de salida de la plantilla. es decir, es el mismo que <% HttpContext.CurrentContext.Response.Write(MyFunc())%>
--- MyFunc() en los dos últimos casos se debe devolver una cadena. También puede ser una referencia a alguna propiedad de ViewModel
o cualquier otro nugget de código que se evalúe como cadena.