2013-05-26 39 views
1

当我在ASP.NET 4.5/Visual Studio 2012的Login.aspx页面启动ASP.NET Web应用程序时,会出现用户名和密码文本框和登录按钮。ASP.NET 4.5 Web应用程序 - 用户名/密码文本框

当我双击按钮(在VS)它创建代码中的点击事件。

当我尝试使用用户名/密码箱是这样的:

string username = Username.Text; 

它说用户名(文本框)不会在目前的情况下存在。

代码Login.aspx.designer.cs差不多空了。

namespace WebApplication2.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::WebApplication2.Account.OpenAuthProviders OpenAuthLogin; 
    } 
} 

Login.aspx HTML

<%@ Page Title="Log in" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebApplication5.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> 

为什么这些控件是不是在designer.cs?

我失踪了什么?

回答

1

听起来像你的项目中的其他东西在构建Login.aspx.designer.cs文件时没有正确构建。

我以前有过这个,虽然没有在新项目的登录页面。

通常,我删除设计器文件(不是Login.aspx或Login.aspx.cs),然后右键单击Login.aspx并选择“转换为Web应用程序”。这将尝试使用所有正确的内容创建Login.aspx.designer.cs文件。

如果你的项目中有些东西被破坏,它会依赖于它,它会告诉你一个错误信息告诉你什么是错误的......然后你可以修复你的项目中的底层问题,然后尝试'转换为Web应用程序'选项。

希望这有助于

库尔特

+1

谢谢,但我想重新开始新的项目,它再次为空。试图删除设计师,并转换,并再次相同。它不生成文本框的代码。我更新了login.aspx的html代码问题,也许这可以帮助... –

+0

表单没有被编辑过吗?登录表单没有ID属性: – Kurt

+0

这是原始登录表单。并且它是Visual Studio 2012. –

0

你为什么不试着给控制实际的“ID”属性,而不是在AssociatedControlID =“不管”属性?

0

有两个明显的问题,我可以看到:我有一个类似的问题

1)字符串的用户名= Username.Text; 在用户名的“n”个不大写,但智能感知会陷入一个 2)aspx.cs文件,在第一行指的是一个旧文件“WebApplication5”(见下文)

Login.aspx.cs

虽然在Designer.cs文件的命名空间是指WebApplication2。这导致我相信项目名称与这两个文件中的一个不同步。更正引用,你现在应该可以看到文件中的变量。

Login.aspx.designer.cs

命名空间WebApplication2.Account

希望帮助, -Kevin

相关问题