¡Hola, esto es realmente extraño!En asp.Net, escribir código en la etiqueta de control genera un error de compilación
Pero mira el siguiente código ASP:
<div runat="server" id="MainDiv">
<%foreach (string str in new string[]{"First#", "Second#"})
{ %>
<div id="<%=str.Replace("#","div") %>">
</div>
<%} %>
</div>
ahora si se pone este código dentro de cualquier página web (y no se preocupe por la moral de este código, lo hice sólo para mostrar la idea) obtendrá este error:
compilador Mensaje de error: CS1518: se esperaba clase, delegado, enumeración, interfaz, o estructura
por supuesto, el error no tiene nada que ver con el verdadero problema, he buscado el código que fue generado por asp.net y descubrió lo siguiente:
private void @__RenderMainDiv(System.Web.UI.HtmlTextWriter @__w, System.Web.UI.Control parameterContainer)
{
@__w.Write("\r\n ");
#line 20 "blabla\blabla\Default.aspx"
foreach (string str in new string[] { "First#", "Second#" })
{
#line default
#line hidden
@__w.Write("\r\n <div id=\"");
#line 22 "blabla\blabla\Default.aspx"
@__w.Write(str.Replace("#", "div"));
#line default
#line hidden
@__w.Write("\">\r\n ");
}
Este es el código que se genera a partir de la página ASP y este es el método que está destinado a hacer que nuestra div (MainDiv), descubrí que hay un soporte perdido "} "que cierra el método o el (para bucle).
ahora el problema tiene tres partes:
1- primero debe tener un control de servidor (en nuestra situación es la MainDiv) y no estoy seguro de si es solo la etiqueta div.
2- control HTML dentro del control de servidor y un código en su interior usando el signo de comillas doble (por ejemplo <div id="<%=str
en lugar de <div id='<%=str
3-Cualquier palabra clave que tiene soportes de bloques por ejemplo:. Para {}, mientras que {}, usando { .} ... etc
ahora la eliminación de cualquier parte, va a resolver el problema !!!
cómo sucede esto ?? cualquier idea
Por cierto:? por favor me ayude a hacer la pregunta más obvio, porque no pude encontrar las mejores palabras para describir el problema.
¡¡¡Parece que mi pregunta no está clara !! Mi pregunta es: ¿cuáles son los pasos que sigue asp.net para generar un código tan erróneo? ¡¿Cómo está pasando eso ?! No quiero la solución para la excepción, ya lo resolví usando una sola cita.
Ok, sé cómo resolver el problema, y ya lo he resuelto, pero tengo curiosidad sobre la forma en que ocurrió este error ?? –