簡體   English   中英

當我在客戶端分配變量時,無效的表達式術語“字符串”

[英]Invalid Expression term 'string' when i assign variable in client side

我如何在aspx頁面中分配變量?

看到我試過了

 <div>
      <asp:TextBox ID="UsernameTextBox" Text="xxx" runat="server"></asp:TextBox>
      <%= string ss=  UsernameTextBox.Text.ToString() %>
      <asp:Button ID="btnLogin" runat="server" 
           OnClientClick="LoginPopup( <%=  UsernameTextBox.Text  %>);  return false;"
           CssClass="login-button" Text="xxx">
      </asp:Button>
 </div>

我已在字符串中分配了usernametextbox值

 <%= string ss =  UsernameTextBox.Text.ToString() %>

但是它顯示如下錯誤: Invalid Expression term'string'

為什么我不能這樣做? 可能嗎?

但是,如果我刪除了"string ss= "那么它<%= UsernameTextBox.Text.ToString() %>正常工作。

我無法將值分配給字符串變量。 為什么?

.NET中的錯誤?或任何錯誤的語法格式?

如果必須為變量分配值,則應使用常規腳本標記,例如:

<% string ss = UsernameTextBox.Text.ToString(); %>

以后,如果您想渲染該值,則可以執行以下操作:

<%= ss %>

您可能會看到: 嵌入式代碼和嵌入式服務器標簽

除了不是那么優雅的Spaghetti代碼之外,您的邏輯也有缺陷,您將始終獲得初始文本框值,而不是單擊時獲得當前值。

要一次殺死兩只鳥並擁有更好的代碼風格和有效的代碼,請首先將標記更改為:

<asp:Button ID="btnLogin" runat="server" OnClientClick="return LoginPopup();" CssClass="login-button" Text="xxx"></asp:Button>

現在在您的JS函數中包含以下內容:

function LoginPopup() {
    var name = document.getElementById("<%=UsernameTextBox.ClientID%>").value;
    //...code using the name here...
    return false;
}

單擊立即讀取值。

暫無
暫無

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

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