2012-06-25 3 views
0

내가이 오류가 발생했습니다형식 또는 네임 스페이스 이름 'WebControls'은 (당신은 using 지시문 또는 어셈블리 참조가?)

The type or namespace name 'WebControls' could not be found (are you missing a using directive or an assembly reference?)

소스 오류 :

Line 28: Login Login1 = (WebControls.Login)LoginView1.FindControl("Login1"); // here the error code 
Line 29: TextBox UserName = (TextBox)Login1.FindControl("UserName"); 
Line 30: TextBox FailureText = (TextBox)Login1.FindControl("FailureText"); 

을 몇 가지 조사를 해본 결과 해결책을 소스 코드에 추가하는 것이 었습니다.

코드를 추가 할 수 있습니다. 처음에는 네임 스페이스로 넣으려고했으나 잘못되었습니다. 누구든지 어디에서이 코드를 사용해야한다고 말할 수 있습니까 ??

편집 당신은 모든 네임 스페이스와 클래스 이름 자체를 포함하여 클래스의 전체 이름, 지정해야

protected void Login1_LoginError(object sender, System.EventArgs e) 
{ 
    //Login Login1 = (WebControls.Login).LoginView1.FindControl("Login1"); 


    Login Login1 = (System.Web.UI.WebControls.Login)LoginView1.FindControl("Login1"); 
     TextBox UserName = (TextBox)Login1.FindControl("UserName"); 
     TextBox FailureText = (TextBox)Login1.FindControl("FailureText"); 

    //There was a problem logging in the user 
    //See if this user exists in the database 

    MembershipUser userInfo = Membership.GetUser(UserName.Text); 
    if (userInfo == null) 
    { 
     //The user entered an invalid username... 

     FailureText.Text = "There is no user in the database with the username " + UserName.Text; 
    } 
    else 
    { 
     //See if the user is locked out or not approved 
     if (!userInfo.IsApproved) 
     { 
      FailureText.Text = "When you created your account you were sent an email with steps to verify your account. You must follow these steps before you can log into the site."; 
     } 
     else if (userInfo.IsLockedOut) 
     { 
      FailureText.Text = "Your account has been locked out because of a maximum number of incorrect login attempts. You will NOT be able to login until you contact a site administrator and have your account unlocked."; 
     } 
     else 
     { 
      //The password was incorrect (don't show anything, the Login control already describes the problem) 
      FailureText.Text = string.Empty; 
     } 
    } 
} 
+0

line28의 코드는 다음과 같아야합니다. WebControls.Login Login1 = (WebControls.Login) LoginView1.FindControl ("Login1") ;. 또한 using System.Web을 사용해야합니다..cs 파일의 맨 위에있는 UI 네임 스페이스 – Rajesh

답변

1

using System.Web.UI.WebControls; 

파일 상단에 있습니다.

+0

안녕하세요, 모두 무슨 뜻입니까? 나는 꽤 이해하지 못한다. – user1467175

+0

안녕하세요, asp.net 1.1과 동일한 문제가 있습니다. 내 코드는 다음과 같습니다. HiddenField hiddenStatus = (HiddenField) e.Item.FindControl ("hidStatus"); 오류가 발생했습니다. 솔루션에 대한 모든 힌트.? –

0

:

(System.Web.UI.WebControls.LoginView)LoginView1.FindControl("Login1"); // LoginView sic! 

또는 사용하여 블록에 네임 스페이스를 추가하십시오 :

using System.Web.UI.WebControls; 
... 
(LoginView)LoginView1.FindControl("Login1");; 
+0

첫 번째 방법을 시도했지만이 오류가 나타납니다. 암시 적으로 "System.Web.UI.WebControls.Login"유형을 "로그인" 으로 변환 할 수없고 두 번째 방법이 나왔습니다. 동일한 오류 (네임 스페이스를 찾을 수 없습니다.) – user1467175

+0

@ user1467175 :'(System.Web.UI.WebControls.LoginView) LoginView' 사용 – abatishchev

+0

같은 오류가 여전히 나타납니다 : "System.Web.UI.WebControls.LoginView"유형을 암시 적으로 변환 할 수 없습니다. 로그인 ","로그인 " – user1467175

1

당신이 게시 한로 코드를 동일하게두고, 처음에 다시

업데이트 - 두 .cs의 상단이 using 문이 코드는 그 파일 추가 후와의 :

using System.Web.UI; 
using System.Web.UI.WebControls; 

코드가 여기에 네임 스페이스를 섞어 놓았다고 생각합니다. 위의 코드를 사용하면 [class]을 사용하여 모든 WebControls.[class] 유형 이름을 제거해야합니다. WebControls 아동용 na를 사용하는 방법 mespace 명시 적으로. 일반적으로 단일 코드 파일에서 두 가지 다른 방식으로 동일한 유형을 참조하는 것은 나쁜 형식입니다.

다른 네임 스페이스의 범위에있는 다른 유형의 Login이 프로젝트에있을 수도 있습니다. 이 경우 다른 사람이 지적했듯이 당신이 라인 (28)

+0

예, 시도해 본 결과 다른 오류가 발생했습니다. "System.Web.UI.WebControls.Login"유형을 암시 적으로 "로그인"으로 변환 할 수 없습니다. – user1467175

+0

내 대답은 업데이트했지만 관심이없는 코드는 .cs 파일 또는 .aspx 파일에 있습니까? –

+0

이것은 내 login.aspx.cs 파일입니다. 맨 위에 전체 코드를 업데이트했습니다. – user1467175

0

에 선언 된 변수에 대한 정규화 된 이름을 사용해야합니다, 당신은 추가해야합니다

System.Web.UI를 사용하여 .WebControls;

파일 상단에 있습니다.

내가 추가 할 수있는 유일한 점은 유사한 오류가 발생하는 경우 (결국 어떤 클래스를 사용할지를 쉽게 식별 할 수 있지만 사용할 네임 스페이스를 식별하기가 어려울 수 있음)입니다.

관련 문제