這是我昨晚給我的一個不好的答案。對於爲什麼一種方法起作用而不是另一種方法的好奇心正在困擾着我,我希望比我聰明的人能夠給我正確的解釋(或者指向我的文檔)爲什麼下面的行爲是如此。爲什麼<%= %>在一種情況下工作,但在另一種情況下不起作用
考慮下面的代碼隱藏:
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