[英]TextBox in .aspx is not accessible in .cs
I have tried a lot and spent my whole day on it but all in vain. 我已经尝试了很多,并且花了我一整天的时间,但都是徒劳的。 I found number of questions related to my problem but no one is resolving my problem. 我发现了一些与我的问题相关的问题,但没有人解决我的问题。 I have a textbox in Login.aspx with ID="UserName" and trying to get its value in Login.aspx.cs but it gives error that "UserName doesn't exist in current context". 我在Login.aspx中有一个ID =“UserName”的文本框,并尝试在Login.aspx.cs中获取其值,但它给出了“UserName在当前上下文中不存在”的错误。 here is my Login.aspx (created by default by VS 2012) 这是我的Login.aspx(由VS 2012默认创建)
<%@ Page Title="Log in" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="True" CodeBehind="Login.aspx.cs" Inherits="cpool2.Account.Login" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<hgroup class="title">
<h1><%: Title %>.</h1>
</hgroup>
<section id="loginForm" runat="server">
<h2>Use a local account to log in.</h2>
<asp:Login 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 runat="server" AssociatedControlID="UserName">User name</asp:Label>
<asp:TextBox runat="server" ID="UserName"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" CssClass="field-validation-error" ErrorMessage="The user name field is required." />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
<asp:TextBox runat="server" ID="Password" TextMode="Password"/>
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password" CssClass="field-validation-error" ErrorMessage="The password field is required." />
</li>
<li>
<asp:CheckBox runat="server" ID="RememberMe" />
<asp:Label runat="server" AssociatedControlID="RememberMe" CssClass="checkbox">Remember me?</asp:Label>
<%--<asp:HyperLink runat="server" ID="RegisterHyperLink" NavigateUrl="~/Account/ForgotPassword.aspx" ViewStateMode="Disabled">Forgot Password?</asp:HyperLink>--%>
</li>
</ol>
<asp:Button runat="server" CommandName="Login" Text="Log in" OnClick="btnLogin" />
</fieldset>
</LayoutTemplate>
</asp:Login>
<p>
<asp:HyperLink runat="server" ID="RegisterHyperLink" ViewStateMode="Disabled">Register</asp:HyperLink>
if you don't have an account.
</p>
</section>
</asp:Content>
Login.aspx.cs is as below: Login.aspx.cs如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.AspNet.Membership.OpenAuth;
using System.Text;
using System.Net.Mail;
using System.Data.SqlClient;
using System.Configuration;
namespace cpool2.Account
{
public partial class Login : System.Web.UI.Page
{
//protected TextBox UserName;
protected void Page_Load(object sender, EventArgs e)
{
RegisterHyperLink.NavigateUrl = "Register.aspx";
OpenAuthLogin.ReturnUrl = Request.QueryString["ReturnUrl"];
var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
if (!String.IsNullOrEmpty(returnUrl))
{
RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl;
}
}
protected void btnLogin(object sender, EventArgs e)
{
string abc = UserName.Text; // causing error
}
}
}
I am working in Web Application (asp.net framework 4.5). 我在Web应用程序(asp.net framework 4.5)中工作。 It may be my silly mistake but it made my day difficult for me :( 这可能是我的愚蠢错误,但它使我的日子很困难:(
try this: 尝试这个:
TextBox UserName = (TextBox)Login1.FindControl("UserName");
if (UserName != null)
{
string abc = UserName.Text;
}
try this.. 尝试这个..
first, give id to login control
<asp:Login id="LoginView1" runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
</asp:Login>
then,
// coding side
TextBox txt = (TextBox)LoginView1.FindControl("UserName");
if (txt != null)
{
//access here
}
Hope it helps you. 希望它能帮到你。
Thanks. 谢谢。
给一个id到asp:登录控件,例如ID="LoginUser"
然后你可以调用
LoginUser.UserName.Text
Assign an ID
to your LoginControl
. 为LoginControl
分配ID
。
<asp:Login runat="server" ID="loginForm" ViewStateMode="Disabled" RenderOuterTable="false">
protected void btnLogin(object sender, EventArgs e)
{
TextBox tbox = this.loginForm.FindControl("UserName") as TextBox;
string abc = tbox .Text;
}
Change this 改变这个
<asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
to 至
<asp:Login runat="server" id="id_login" RenderOuterTable="false">
and get value with 并获得价值
id_login.Username
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.