簡體   English   中英

在服務器端屬性中未正確解釋內聯代碼

[英]Inline code not being interpreted correctly when in server-side attribute

請使用以下代碼:

<asp:TextBox ID="txtFirstName" runat="server" title='<%=Resources.Constants.EmptyFirstName%>' /><em>*</em>

這實際上生成了<%=Resources.Constants.EmptyFirstName%>的title屬性,而不是執行代碼(因此返回正確的值)。

這有什么理由嗎? 有修復嗎?

為什么不簡單地在代碼隱藏文件中設置屬性值?

txtFirstName.Attributes.Add("title",Resources.Constants.EmptyFirstNam);

服務器端控件不能使用解釋標記'<%=%>'。 在后面的代碼中設置值更容易,但如果你真的想要aspx中的邏輯,你可以使用數據綁定表達式:

在您的aspx上,將您的標記更改為數據綁定標記:

<asp:TextBox ID="txtFirstName" runat="server" title='<%#=EmptyName()%>' /><em>*</em>

在您的代碼中添加此函數:

public string EmptyName() {
    return Resources.Constants.EmptyFirstName
}

這很麻煩,因為你仍然需要調用txtFirstName.DataBind()

為什么不在CodeBehind文件中設置OnInit中的值?

如果您決定在aspx文件中執行此操作而不是后面的代碼,請查看有關Expression Builders的文章: http//www.4guysfromrolla.com/articles/022509-1.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM