현재 컨텍스트에 'controlname'이름이 없습니다.
작업중인 웹 응용 프로그램이 있습니다 (VS2005를 사용하는 C #의 ASP.NET2.0). 모든 것이 잘 작동했고 갑자기 오류가 발생했습니다.
Error 1 The name 'Label1' does not exist in the current context
페이지의 코드 비하인드에서 컨트롤을 사용할 때마다 43 개의 다른 종류가 있습니다.
이것은 1 페이지에서만 발생합니다. 코드 숨김이 컨트롤을 인식하지 못하는 것과 같습니다. 또 다른 흥미로운 점은 인텔리 센스가 컨트롤을 선택하지 않는다는 것입니다.
솔루션 파일을 정리하고, 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 폴더를 삭제합니다. 그러나 그것은 당신이 얻는 데이터 컨텍스트 오류를주었습니다. 그래서 방금 모든 파일을 삭제하고 파일 제한없이 게시를 다시 실행하면 (모든 폴더 및 파일이 게시됩니다) 매력처럼 작동했습니다.
같은 문제가 있었는데 두 속성 사이에 공백이 없었습니다. "
AutoGenerateColumns="False"DataKeyNames="ProductID"
대신에
AutoGenerateColumns="False" DataKeyNames="ProductID"
내 프로젝트에서 현재 파일을 백업하고 (그래서 코드가 남아 있으므로) 현재 aspx (및 하위 페이지)를 삭제하고 새 aspx를 만들고 백업 파일의 내용을 새 파일에 복사하여이 문제를 해결했습니다.
이 오류는 runat="server"
.
위에 제공된 솔루션 옵션 # 2는 웹 aspx 응용 프로그램이 아닌 Windows Forms 응용 프로그램에 대해 작동합니다. 웹 응용 프로그램에서 비슷한 오류가 발생했습니다. 같은 이름의 사용자 컨트롤이있는 파일을 삭제하여이 문제를 해결했습니다.이 aspx 파일은 실제로 백업 파일이며 프로세스의 어느 곳에서도 참조되지 않았지만 여전히 오류가 발생했습니다. 백업 파일에 등록 된 사용자 정의 컨트롤의 이름은 프로세스 흐름에서 참조 된 aspx 파일에서 정확히 동일하게 명명되었습니다. 그래서 백업 파일을 삭제하고 솔루션을 구축하고 성공했습니다.
이것이 비슷한 시나리오에서 도움이되기를 바랍니다.
비자 야 락스 미.
컨트롤이 clientidmode = "Static"속성을 갖도록 Visual Studio 2010 프로젝트에서 aspx 파일을 다시 생성하려고했기 때문에 동일한 문제가 발생했습니다. 이것이 제거되면 해결되었습니다.
DataList에서 변환 한 후 Repeater로 조정할 때 비슷한 문제가 발생했습니다.
문제는 불필요한 속성을 삭제할 때 실수로 2 개의 속성을 통합 한 것입니다.
<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
.
.
.
</asp:Repeater>
그리고 이것은 디자인 파일에서 리피터가 생성되는 것을 막았습니다.
동일한 오류 메시지가 표시되었습니다. 내 코드는 오류가 없었고 완벽하게 작동 한 다음 돌아가서 내 버튼 중 하나의 이름을 변경하기로 결정했는데 갑자기 현재 컨텍스트에 컨트롤이 존재하지 않는다는 파란색 구불 구불 한 밑줄과 함께 컴파일 오류가 발생합니다.
Turns out Visual Studio was being dumb, as the problem was related to the backup files I had made of my aspx.cs class. I deleted those and the errors went away.
I ran into this same issue. Apparently, you shouldn't call a class in the BLL the same name as one of the .aspx/.aspx.cs files. I thought they would not be in the same scope, etc. but it messed with Visual Studio's internal workings too much. I'm a bit surprised there isn't something to keep you from doing this if it is going to produce that type of error. Anyway, just delete the .aspx/.aspx.cs files and rebuild your project. Then bring them back in under another name. You can copy/paste your code into another editor if you don't want to retype it all back in.
In my case, when I created the web form, it was named as WebForm1.aspx and respective names (WebForm1). Letter, I renamed that to something else. I renamed manually at almost all the places, but one place in designer file was still showing it as 'WebForm1'.
I changed that too and got rid of this error.
1) Check the CodeFile property in <%@Page CodeFile="filename.aspx.cs" %> in "filename.aspx" page , your Code behind file name and this Property name should be same.
2)you may miss runat="server" in code
'program tip' 카테고리의 다른 글
UIApplication.registerForRemoteNotifications ()는 메인 스레드에서만 호출되어야합니다. (0) | 2020.10.28 |
---|---|
파이썬 목록에서 중복을 제거하고 순서를 유지하는 방법은 무엇입니까? (0) | 2020.10.28 |
Python에서 범위를 벗어난 인덱스에 대한 기본값 가져 오기 (0) | 2020.10.28 |
Dagger 2.2 컴포넌트 빌더 모듈 메소드가 더 이상 사용되지 않음 (0) | 2020.10.28 |
Python을 사용하여 Microsoft SQL 서버에 연결 (0) | 2020.10.28 |