2010-09-14 8 views
5

¿Cuál es la diferencia entre <%%> y <%:%> en el contexto del motor de vista MVC de asp.net. En el libro MVC2 que se le da de la siguiente manera:ver etiquetas de código de plantilla - asp.net mvc - regd

  • <% pepitas%> código ejecutar código cuando la plantilla de vista hace.
  • <%: Pepitas%> código de ejecutar el código contenido dentro de ellos y luego hacen que el resultado de la corriente de salida de la plantilla.

¿Cuándo usar el primero y cuándo usar el segundo?

Respuesta

7

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.

Cuestiones relacionadas