[c#] 현재 컨텍스트에 ‘controlname’이름이 없습니다.

작업중인 웹 응용 프로그램이 있습니다 (VS2005를 사용하는 C #의 ASP.NET2.0). 모든 것이 잘 작동하고 갑자기 오류가 발생합니다.

Error 1 The name 'Label1' does not exist in the current context

페이지의 코드 비하인드에서 컨트롤을 사용할 때마다 43 개의 다른 종류가 있습니다.

이것은 한 페이지에서만 발생합니다. 코드 숨김이 컨트롤을 인식하지 못하는 것과 같습니다. 또 다른 흥미로운 점은 인텔리 센스가 컨트롤을 선택하지 않는다는 것입니다.

솔루션 파일을 정리하고, obj 파일을 삭제하고, 프로젝트에서 파일을 제외하고, 다시 추가하고, VS를 닫고 다시 시작하고, 심지어 내 컴퓨터를 다시 시작하려고 시도했지만 이들 중 어느 것도 작동하지 않았습니다.



답변

@Page 지시문의 파일 이름과 Inherits 속성 뒤에있는 코드를 확인하고 둘 다 일치하는지 확인합니다.


답변

나는 이것이 오래된 질문이라는 것을 알고 있지만 비슷한 문제가 있었고 다른 사람에게 도움이 될 수있는 경우 내 솔루션을 게시하고 싶었습니다. 사용 방법을 배우는 동안 문제가 발생했습니다.

  • ASP.NET 3.5
  • 씨#
  • VS2008

AJAX 사용 페이지를 만들려고했습니다 (이에 익숙하지 않은 경우 ScriptManager 개체 사용에 대한 자습서를 참조하십시오). C # 코드를 통해 페이지의 HTML 요소에 액세스하려고했는데 HTML ID 값에 대한 식별자가 “현재 컨텍스트에 존재하지 않습니다”라는 오류가 발생했습니다.

이를 해결하기 위해 다음을 수행해야했습니다.

1. 서버에서 실행

C # 코드의 변수로 HTML 요소에 액세스하려면 aspx 파일의 HTML 요소 태그에 다음 값을 배치해야합니다.

runat="server"

Visual Studio IDE의 도구 상자에있는 일부 개체는 페이지에 추가 될 때이 값을 자동으로 포함하지 않습니다.

2. 자동 생성 된 C # 파일을 다시 생성합니다.

  • 솔루션 탐색기의 aspx 파일 아래에 * .aspx.cs 및 * .aspx.designer.cs 파일이 있어야합니다. 디자이너 파일이 자동 생성됩니다.
  • 기존 * .aspx.designer.cs 파일을 삭제합니다. 디자이너 파일 만 삭제해야 합니다. 다른 하나는 페이지에 대한 C # 코드가 포함되어 있으므로 삭제하지 마십시오.
  • 상위 aspx 파일을 마우스 오른쪽 버튼으로 클릭합니다. 팝업 메뉴에서 웹 응용 프로그램으로 변환을 선택합니다 .

이제 C # 코드 파일에서 요소에 액세스 할 수 있습니다.


답변

동일한 코드 숨김 파일을 참조하는 다른 페이지 (예 : 복사하여 붙여 넣은 이전 페이지)를 제외합니다.


답변

나는 같은 문제가 있었다. 내 프로젝트에 “MyPage.aspx”와 “Copy of MyPage.aspx”가 모두있는 것으로 나타났습니다.


답변

또한 실수로 다른 파일과 동일한 (부분) 클래스를 상속하거나 정의하려는 파일이 없는지 확인하십시오. 이러한 파일은 오류가 실제로 발생한 파일과 관련이없는 것처럼 보일 수 있습니다.


답변

WPF 오류를 제외하고는 이와 동일한 오류가 발생했습니다. 나는 프로젝트를 재정렬하고 다음과 같이 정의 된 컨트롤을 가지고 있었다.

<local:CustomControl Name="Custom" />

내 코드에서 Custom.Blah를 사용해 보았지만 오류가 발생했습니다.

The name 'Custom' does not exist in the current context

나를 위해 트릭은 Xaml의 컨트롤을 다음과 같이 변경하는 것입니다.

<local:CustomControl x:Name="Custom" />

이것이 누군가를 돕기를 바랍니다!


답변

데이터 컨텍스트를 변경 한 후에도 동일한 오류가 발생합니다. 그러나 나는 내가 익숙하지 않은 것을 만난다. 내 파일을 수동으로 게시하는 데 익숙해졌습니다. 일반적으로 그렇게하면 게시 폴더에 App_Code 폴더가 나타나지 않습니다. Bu i는 웹 서버에 대한 도움으로 직접 게시하는 VS 12 게시를 사용하기 시작했습니다. 그런 다음 미리 컴파일 된 응용 프로그램에 대한 오류가 발생합니다. 그런 다음 작동 한 app_code 폴더를 삭제합니다. 그러나 그것은 당신이 얻는 데이터 컨텍스트 오류를주었습니다. 그래서 방금 모든 파일을 삭제하고 파일 제한없이 게시를 다시 실행하면 (모든 폴더 및 파일이 게시됩니다) 매력처럼 작동했습니다.