Why <%= %> works in one situation but not in another

Viewed 3309

This is stemming from a bad answer I gave last night. The curiosity as to why one method works and not the other is bugging me and I'm hoping someone smarter than me can give me the proper explanation (or point me to the documentation) of why the following behavior is as it is.

Given the following code-behind:

protected string GetMyText(string input)
{
  return "Hello " + HttpUtility.HtmlEncode(input);
}

Why does this work

 <asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>

but this does not

<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />

Edit - added

At the risk of having my original dumb answer downvoted more times, here's the link to the original question, since some of the answers I'm getting now were already covered in that question.

Why can't I set the asp:Label Text property by calling a method in the aspx file?

6 Answers
Related