Esto se debe a una mala respuesta que di anoche. La curiosidad sobre por qué un método funciona y no el otro me está molestando y espero que alguien más inteligente que yo pueda darme la explicación adecuada (o señalarme la documentación) de por qué el siguiente comportamiento es como es.Por qué <%= %> funciona en una situación pero no en otra
Dado el siguiente código subyacente:
protected string GetMyText(string input)
{
return "Hello " + HttpUtility.HtmlEncode(input);
}
Por qué funciona esto
<asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>
pero esto no lo hace
<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />
Editar - Se ha añadido
A riesgo de que mi respuesta tonta original sea rechazada más veces, aquí está el enlace a la pregunta original, ya que algunas de las respuestas que estoy obteniendo ahora ya estaban cubiertas en esa pregunta.
Why can't I set the asp:Label Text property by calling a method in the aspx file?
¿Tiene algo con comillas simples o dobles? Sé que algunos idiomas hacen que todo entre comillas simples de salida pura, mientras que el texto dentro de comillas dobles se evalúa primero ... – peirix
@peirix - Las comillas simples vs. dobles no hacen ninguna diferencia en la sintaxis de ASP.NET. La sintaxis sigue las reglas de sintaxis XML que establecen que puede usar comillas dobles e individuales indistintamente, siempre y cuando siempre termine con la misma cosa con la que comenzó. –