这是我昨晚给我的一个不好的答案。对于为什么一种方法起作用而不是另一种方法的好奇心正在困扰着我,我希望比我聪明的人能够给我正确的解释(或者指向我的文档)为什么下面的行为是如此。为什么<%= %>在一种情况下工作,但在另一种情况下不起作用
考虑下面的代码隐藏:
protected string GetMyText(string input)
{
return "Hello " + HttpUtility.HtmlEncode(input);
}
为什么这项工作
<asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>
但这并不
<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />
编辑 - 添加
冒着让我原来愚蠢的回答低估了更多次的风险,这里是原始问题的链接,因为我现在得到的一些答案已经包含在这个问题中。
Why can't I set the asp:Label Text property by calling a method in the aspx file?
单引号与双引号有什么区别吗?我知道一些语言将单引号内的所有内容都输出为纯输出,而双引号内的文本首先被计算出来... – peirix 2009-10-07 13:21:10
@peirix - 单引号对双引号对ASP.NET语法没有任何影响。语法遵循XML语法规则,它声明可以互换使用双引号和单引号,只要您始终以与之相同的事物结束即可。 – 2009-10-07 13:29:18