gpt4 book ai didi

c# - Asp.net 从 aspx 中的文本框获取值以隐藏代码

转载 作者:太空狗 更新时间:2023-10-29 17:46:27 26 4
gpt4 key购买 nike

我正在用 asp.net 和 C# 编程语言创建一个登录系统。处理用户和密码的代码已经完成。但是在 View 层中,我很难从用户名文本框和密码文本框中获取值并将其传递给代码隐藏。

两个文本框都有 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>

我确实从用户名和密码文本框中获取了值:

  1. 使用代码:

    string user = this.UserName.Text;
    string pass = this.Password.Text;
  2. 使用代码:

    Textbox UserName = this.FindControl("UserName");
  3. 删除了 aspx.design.cs 并右键单击表单并将其转换为应用程序;

  4. 在设计器中,添加以下代码行:

    protected global::System.Web.UI.WebControls.TextBox UserName;
    protected global::System.Web.UI.WebControls.TextBox Password;

到目前为止没有任何效果,当我到达这一行时:

string user = this.UserName.Text;

它抛出一个错误:

Object Reference not set an instance of an object.

你能为我的问题提出任何解决方案吗?

最佳答案

这是因为这些控件是模板的一部分。它们不直接在页面上,它们是在 Login 控件初始化时动态添加的。要访问它们,您需要 FindControl:

string user = ((TextBox)Login1.FindControl("UserName")).Text;

关于c# - Asp.net 从 aspx 中的文本框获取值以隐藏代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com