2011-11-20 22 views
15

Así que en .NET que tienen ....NET "code nugget blocks"?

<%= 

<%: (new to .NET 4 - syntactic sugar for HTML encoding) 

<%# 

<%@ 

¿Cuáles son exactamente estos?

¿Y hay más? ¿Hay una lista exhaustiva de estos y qué son en cualquier lugar? Es difícil saber qué buscar, ni siquiera oí hablar del término "bloques de nugget de código" hasta esta noche cuando descubrí qué era <%.

Respuesta

9

Estas <%@ son directivas. Para obtener una lista exhaustiva y documentación, consulte MSDN.

Cuando se usan, las directivas pueden estar ubicados en cualquier lugar en un .aspx o .ascx archivo, aunque la práctica habitual es incluirlos en el comienzo de el archivo. Cada directiva puede contener uno o más atributos (emparejados con valores) que son específicos de esa directiva.

El <% son bloques de secuencias de comandos. Aquí es una buena descripción de MSDN

Un bloque de código incrustado es código de servidor que se ejecuta durante la fase de representar la página. El código en el bloque puede ejecutar instrucciones de programación y funciones de llamada en la clase de página actual.

El bloque <%# se usa normalmente en los controles vinculados. Consulte este breve article para obtener más información.

2

No estoy seguro de si todas estas etiquetas de WebForm tienen un nombre colectivo adecuado, pero todas deben estar cubiertas en ASP.NET Page Syntax.

Hay otro que no está en la lista, ASP.NET Expressions:

<%$ expressionPrefix: expressionValue %> 
8

Se llaman pepitas de código. Proporcionan instrucciones de marco de ASP.NET sobre cómo procesar la instrucción dentro de esos símbolos (<%%>). Hasta que supe su nombre, sí, fue un poco más difícil preguntarlo en la comunidad. No estoy seguro de una lista "exhaustiva", pero hay un par más de lo que ha especificado. A continuación se encuentra la lista de otros nuggets de código y sus usos y ejemplo de muestra.

símbolo - Nombre - Descripción - por ejemplo (Formato)


<% código --Standard pepita - Indica que las siguientes afirmaciones son declaraciones de C#. Tendrá que seguir las reglas de sintaxis de C#. p.ej.

<% string[] cities = { ""London"", ""New York"", ""Paris"" }; 
string myCity = cities[new Random().Next(cities.Length)]; 
Response.Write(myCity);%> 

<%= --Content pepita de código - Similar al estándar cn, diferencia que es el resultado devuelto se inserta directamente en respuesta al navegador sin tener que utilizar Response.Write. p.ej.

<%=textBox.Text%> 

(NO SE RECOMIENDA, incluye el riesgo de ataque de inyección html.Si la entrada en el cuadro de texto es algo así como "< button type = submit > Submit</button >", agregará un botón a la página. Por supuesto que habría de validación, pero espero que el punto es claro.)


<%: código de pepita --Encoded --Similar a <% =, pero la respuesta está codificada en HTML. p.ej. Name is <%:textBox.Text%> (sea cual sea la entrada está en el cuadro de texto, se visualiza. Si la entrada es algo así como "< button type = submit > Submit</button >", la salida sería "Nombre es <button type = submit> Submit</button>".


<%# código --Hojas vinculante nugget - Denota un nugget de código de enlace de datos, usado para referirse al objeto de datos actual. Solo utilizable con controles de enlace de datos como repetidor, etc.

<%#: --Enlace de datos codificados - Denota un nugget de código de enlace de datos codificados donde el valor enlazado a datos está codificado, por ejemplo,

<asp:Repeater ItemType = ""System.String"" SelectMethod = ""GetCities"" runat = ""server"> 
<ItemTemplate> 
<li > <%# Item % > </li> 
</ItemTemplate> 
</asp:Repeater> 

(Si codificado (<%#:) se utiliza, se muestra literales sin interpretaciones, recomendado.)"


<%$ --property código pepita - Se utiliza para referirse a valor de configuración, tal como los definidos en Web.config.

<asp:Literal Text = " < %$ AppSettings: cityMessage % > " runat = "server" /> 

(Recupera el valor de la clave cityMessage desde el archivo de configuración.)


<%@ Directiva --Page - Se utiliza para configurar el formulario Web (o el control o la página maestra, dependiendo en el tipo de instrucciones. ej.

<%@ Page.. <%@ Master 

Toda la información arriba mencionada y correo xamples son del libro Pro ASP .NET 4.5 de Adam Freeman, Capítulo 12. Excelente libro imo.

Cuestiones relacionadas