asp.net - asp - <%= %>
<%:%> corchetes para codificación HTML en ASP.NET 4.0 (2)
Está confundiendo expresiones de enlace de datos , que tienen la sintaxis <%#%>
y se utilizan con Eval
(y Bind
) con las etiquetas de salida de respuesta ( <%=%>
y <%:%>
) que no se pueden usar con Eval
.
Accidentalmente, encontré esta publicación sobre una nueva característica en ASP.NET 4.0: las expresiones incluidas en estos nuevos paréntesis <%: Content %>
deben representar como HTML codificado.
He intentado esto dentro de una etiqueta de datos en un FormView como así:
<asp:Label ID="MyLabel" runat="server" Text=''<%: Eval("MyTextProperty") %>'' />
Pero no funciona: la propiedad de texto contiene etiquetas de script (para probar), pero el resultado está en blanco. Usando la manera tradicional funciona:
<asp:Label ID="MyLabel" runat="server"
Text=''<%# HttpUtility.HtmlEncode(Eval("MyTextProperty")) %>'' />
¿Qué estoy haciendo mal?
(En una nota al margen: soy demasiado estúpido para encontrar información: Google se niega a buscar esa cosa. La ayuda en línea de VS2010 en MSDN ofrece muchos éxitos, pero nada relacionado con mi búsqueda. Búsqueda de Stackoverflow también. Y yo no sé cómo estas "cosas" (los corchetes que quiero decir) están oficialmente llamados a tener un mejor término de búsqueda.)
¡Cualquier información y enlaces y recursos adicionales son bienvenidos!
¡Gracias por adelantado!
Utilice la sintaxis de enlace de datos de codificación HTML <%#: %>
. (Observe el '':'' después del ''#''). Por ejemplo:
Text=''<%#: Eval("PropertyToEval") %>''