的Visual Studio 2012新的ASP Web窗体应用程序不能访问从aspx文件文本框
我刚刚创建VS 2012一个新的Web窗体应用程序,我试图让位于的Login.aspx页面中的用户名文本框的值,所有的即时得到的是名用户名不存在的当期的情况下,试图访问它在login.aspx.cs文件时...
i just created a new Web Forms application in VS 2012, i'm trying to get the value of the "UserName" textbox located in the Login.aspx page, all im getting is "the name UserName does not exist in the currect context" when trying to access it in the login.aspx.cs file...
ASPX文件:
<%@ Page Title="Log in" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebApplication1.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">
<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: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>
</li>
</ol>
<asp:Button runat="server" CommandName="Login" Text="Log in" />
</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>
<section id="socialLoginForm">
<h2>Use another service to log in.</h2>
<uc:OpenAuthProviders runat="server" ID="OpenAuthLogin" />
</section>
</asp:Content>
在CS文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1.Account
{
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string id = UserName.Text;
}
}
}
编辑:
增加了自动生成的文件aspx.designer.cs:
added the auto-generated aspx.designer.cs file:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebApplication1.Account
{
public partial class Login
{
/// <summary>
/// RegisterHyperLink control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink RegisterHyperLink;
/// <summary>
/// OpenAuthLogin control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebApplication1.Account.OpenAuthProviders OpenAuthLogin;
}
}
任何帮助将大大AP preciated。
any help would be greatly appreciated.
(评论在OP的请求转换为答案)
(Commented converted to an answer at the OP's request)
啊,我看用户名包含在&LT之内; LayoutTemplate模板&GT;
。这由设计师弄乱式控件生成。如果您移动文本框之外,然后它会工作,但如果你使用&LT; ASP:登录&GT;
(我不建议你这样做)你不为了直接从您的code-后面访问控制。
Ah, I see UserName is contained within a <LayoutTemplate>
. That messes-up control generation by the designer. If you move your textbox outside then it will work, but if you're using <asp:Login>
(which I don't recommend you do) you're not meant to access controls directly from your code-behind.