如何在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 ss= "
,那么<%= UsernameTextBox.Text.ToString() %>
工作正常。
我无法将值分配给字符串变量。为什么呢?
是.net中的错误?还是错误的语法格式?
答案 0 :(得分:7)
如果必须为变量赋值,则应使用正常的脚本标记,如:
<% string ss = UsernameTextBox.Text.ToString(); %>
稍后如果要渲染该值,则可以执行以下操作:
<%= ss %>
答案 1 :(得分:0)
除了非常优雅的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;
}
您现在点击时会读取该值。