2016-07-12 5 views
1

Я не думаю, что мой вопрос новый, но я пробовал много решений на этом веб-сайте и ничего не работал. Итак, вот моя проблема:Имя «Пароль» в текущем контексте не существует

У меня есть этот код, который дает мне 2 ошибки о «пароле» и «имени пользователя». Я создал проект как веб-сайт, поэтому у меня нет файла дизайна для исправления. Как я могу это исправить?

Вот код из ASPX файла:

<section id="loginForm"> 
     <h2>&nbsp;</h2> 
     <asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false"> 
      <LayoutTemplate> 
       <p class="validation-summary-errors"> 
        &nbsp;</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> 
         </li> 
        </ol> 
        <asp:Button runat="server" CommandName="Login" Text="Log in" ID="Login" OnClick="Login_Click" Width="300px" /> 
       </fieldset> 
      </LayoutTemplate> 
     </asp:Login> 
     <p> 
      &nbsp;</p> 
    </section> 

Вот код в aspx.cs файле:

string UN = UserName.Text; //Request.QueryString["UserName"]; 
     string PW = Password.Text;//Request.QueryString["Password"]; 
+0

Возможный дубликат [имя «CONTROLNAME» не существует в текущем контексте] (http://stackoverflow.com/questions/706603/the-name-controlname-does-not-exist-in- the-current-context) – Alex

+0

Есть ли случаи, в которые вы их скопировали? Я обнаружил, что это часто может привести к тому, что код для страницы ASPX не будет должным образом обновлен и, таким образом, сделает некоторые из элементов управления недоступными. Вы можете попытаться удалить их, создав их вручную, и сохраните/перестройте, чтобы узнать, не изменилось ли это. –

+0

Я не копировал их, но я просто удалил их и поместил новые и не использовал. У меня такая же ошибка. –

ответ

0

Я не использовал в любое время контроля входа в систему, однако, так как я вижу ViewTemplate, я предполагаю, что вам нужно найти элементы управления в контейнере входа, например, как вы делаете в Gridview.

control myControl=Login.findControl("id"); 
textbox password= (textbox) myControl; 

, что так оно и должно быть подъезд, и, кстати, не забудьте использовать RUNAT = «сервер» метки на пульте управления, если не делаете, то они не будут в коде подъезд позади.

2

Прежде всего, необходимо создать ссылку элемент управления Войти с помощью кода - так дайте ему ID:

<asp:Login ID="MyLogin" runat="server" ViewStateMode="Disabled" RenderOuterTable="false"> 

Затем доступ к имени пользователя и пароля в качестве свойств экземпляра элемента управления:

MyLogin.UserName 
MyLogin.Password 

Не как обычные текстовые поля, как вы пытаетесь сделать.

Вы можете получить доступ к этим значениям в событии LoggedIn.

protected void MyLogin_LoggedIn(object sender, EventArgs e) 
{ 
    string name = MyLogin.UserName; 
} 
+0

Это сработало, спасибо @Crowcoder. –

Смежные вопросы