如何在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>
我已在字符串中分配用户名文本框值
<%= string ss = UsernameTextBox.Text.ToString() %>
但它显示的错误类似于:无效的表达式术语"字符串"
为什么我不能那样做?有可能吗?
但如果我去掉"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;
}
现在单击时已读取值。