2010-07-25 33 views
6

Un compañero de trabajo recientemente comprobado en un conjunto de cambios donde la gran cantidad de expresiones en la forma <% = (...)%> se cambiaron a <%: (...)%>.¿Qué hace <%: %> en ASP.NET (MVC2)?

Tengo un vago recuerdo de haber oído lo que <%: hace, pero no puede recordar. Es demasiado tarde para llamar a mi compañero de trabajo, y Google y Bing parecen incapaces de buscar la cadena "<%:".

¿Alguien me puede aclarar, por favor?

+0

relacionado, pero no cubre esta construcción - http://stackoverflow.com/questions/160097/whats-the-difference-between-and – ChrisF

Respuesta

12

It HtmlEncodes la cadena, si aún no ha sido codificada.

La "parte no se haya codificado" Es por ello que se introdujo MvcHtmlString. MVC2 devuelve MvcHtmlString de muchos métodos HtmlHelper para representar cadenas que no deberían recodificarse. El <%:%> sabe que no volver a codificar.

Ver What is an MvcHtmlString and when should I use it? para una buena discusión.

+0

Gracias. Y gracias por apuntarme a MvcHtmlString también. –

8

Se ajusta automáticamente la salida dictada en Html.Encode() para evitar ataques de scripts.

1

Una forma de recordar esto es (cortesía: Scott Hanselman) think = como una puerta cerrada. Ahora abre la puerta girándola 90 grados y mírala desde la misma vista. verá: