Wynika to ze złej odpowiedzi, którą dałem ostatniej nocy. Ciekawość, dlaczego jedna metoda działa, a nie druga, podsłuchuje mnie i mam nadzieję, że ktoś mądrzejszy ode mnie może dać mi odpowiednie wyjaśnienie (lub wskazać mi w dokumentacji), dlaczego następujące zachowanie jest takie, jakie jest.Dlaczego <%= %> działa w jednej sytuacji, ale nie w innej
Biorąc pod uwagę następujący kod z opóźnieniem:
protected string GetMyText(string input)
{
return "Hello " + HttpUtility.HtmlEncode(input);
}
Dlaczego to działa
<asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>
ale to nie
<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />
Edycja - dodał
Ryzykując, że moja oryginalna głupia odpowiedź będzie więcej razy przewracana, tutaj znajduje się link do pierwotnego pytania, ponieważ niektóre z odpowiedzi, które otrzymuję, zostały już omówione w tym pytaniu.
Why can't I set the asp:Label Text property by calling a method in the aspx file?
Czy ma coś z pojedynczym a podwójnym cudzysłowem? Wiem, że niektóre języki sprawiają, że wszystko wewnątrz pojedynczego cudzysłowu jest czystym wyjściem, podczas gdy tekst wewnątrz podwójnego cudzysłowu jest oceniany jako pierwszy ... – peirix
@peirix - Pojedyncze i podwójne cudzysłowy nie mają znaczenia dla składni ASP.NET. Składnia jest zgodna z regułami składni XML, które mówią, że możesz używać cudzysłowów podwójnych i pojedynczych zamiennie, o ile zawsze kończysz z tym samym, od którego zaczynałeś. –