C# 无效的表达式项';字符串';当我在客户端分配变量时

C# 无效的表达式项';字符串';当我在客户端分配变量时,c#,asp.net,string,variables,syntax-error,C#,Asp.net,String,Variables,Syntax Error,如何在aspx页面中分配变量 看,我试过了 <div> <asp:TextBox ID="UsernameTextBox" Text="xxx" runat="server"></asp:TextBox> <%= string ss= UsernameTextBox.Text.ToString() %> <asp:Button ID="btnLogin" runat="server"

如何在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() %>

但它显示的错误如下:无效的表达式术语“string”

为什么我不能那样做?可能吗

但是如果我删除了
“string ss=“
”,那么
工作正常

我无法将值赋给字符串变量。为什么?


是.net中的错误?还是语法格式错误

如果必须为变量赋值,则应使用普通脚本标记,如:

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

稍后,如果要渲染该值,则可以执行以下操作:

<%= ss %>


您可能会看到:

除了非常不优雅的意大利面代码之外,您的逻辑也有缺陷,您总是会得到初始文本框值,而不是单击时的当前值

要一举两得,同时拥有更好的代码样式和工作代码,首先将标记更改为:

<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;
}
函数LoginPopup(){
var name=document.getElementById(“”)值;
//…使用此处的名称进行编码。。。
返回false;
}

您现在单击时读取值。

这个答案可能会帮助Gooood。现在我得到了值
,但它不是working@RameshRajendran,它应该是
,所以不要使用它。我只是为了那些想使用它的人而展示更优雅的方式。另外,请查看如果用户名包含单个引号会发生什么情况。(提示:您的代码将中断,但此代码不会)