Asp.net从aspx中的Textbox中获取值以进行代码隐藏
本文关键字:隐藏 代码 获取 net aspx 中的 Textbox Asp | 更新日期: 2023-09-27 18:01:04
我正在用asp.net和C#编程语言创建一个登录系统。处理用户和密码的代码已经完成。但在视图层,我很难从用户名文本框和密码文本框中获取值并将其传递给codeehind。
这两个文本框都是ID标识的,在我为数不多的编程技能中,一个ID应该足以访问元素。
这是我的aspx登录页面:
<asp:Login ID="Login1" runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
<LayoutTemplate>
<p class="validation-summary-errors">
<asp:Literal runat="server" ID="FailureText" />
</p>
<fieldset>
<legend>Log in Form</legend>
<ol>
<li>
<asp:Label ID="Label1" runat="server" AssociatedControlID="UserName">User name</asp:Label>
<asp:TextBox runat="server" ID="UserName" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="UserName" CssClass="field-validation-error" ErrorMessage="The user name field is required." />
</li>
<li>
<asp:Label ID="Label2" runat="server" AssociatedControlID="Password">Password</asp:Label>
<asp:TextBox runat="server" ID="Password" TextMode="Password" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="Password" CssClass="field-validation-error" ErrorMessage="The password field is required." />
</li>
<li>
<asp:CheckBox runat="server" ID="RememberMe" />
<asp:Label ID="Label3" runat="server" AssociatedControlID="RememberMe" CssClass="checkbox">Remember me?</asp:Label>
</li>
</ol>
<asp:Button ID="Button1" runat="server" CommandName="Login" Text="Log in" OnClick="Button1_Click"/>
</fieldset>
</LayoutTemplate>
</asp:Login>
我确实从用户名和密码文本框中获得了值:
使用代码:
string user = this.UserName.Text; string pass = this.Password.Text;
使用代码:
Textbox UserName = this.FindControl("UserName");
删除
aspx.design.cs
,右键单击表单并将其转换为应用程序;在设计器中,添加以下代码行:
protected global::System.Web.UI.WebControls.TextBox UserName; protected global::System.Web.UI.WebControls.TextBox Password;
到目前为止,一切都不起作用,当我到达这条线时:
string user = this.UserName.Text;
它给了我一个错误:
对象引用未设置对象的实例。
你能为我的问题提出解决办法吗?
Login
控件时动态添加到页面上。要访问它们,您需要FindControl
:
string user = ((TextBox)Login1.FindControl("UserName")).Text;