Mam aplikację internetową, nad którą pracuję (ASP.NET2.0 z C #, używając VS2005). Wszystko działało dobrze i nagle pojawia się błąd:
Error 1 The name 'Label1' does not exist in the current context
i 43 inne tego rodzaju za każdym razem, gdy użyłem kontrolki w moim kodzie za stroną.
Dzieje się to tylko na 1 stronie. I to tak, jakby za kodem nie rozpoznawano elementów sterujących. Inną interesującą rzeczą jest to, że Intellisense również nie przejmuje żadnej kontroli.
Próbowałem wyczyścić plik rozwiązania, usunąć plik obj, wykluczyć pliki z projektu, a następnie ponownie je dodać, zamknąć VS i ponownie uruchomić, a nawet ponownie uruchomić komputer, ale żaden z nich nie zadziałał.
c#
asp.net
visual-studio-2005
code-behind
zohair
źródło
źródło
Odpowiedzi:
Sprawdź swój kod za nazwą pliku i właściwością Inherits w dyrektywie @Page, upewnij się, że oba są zgodne.
źródło
Wiem, że to stare pytanie, ale miałem podobny problem i chciałem opublikować swoje rozwiązanie na wypadek, gdyby przyniosło korzyści komuś innemu. Napotkałem problem podczas nauki obsługi:
Próbowałem utworzyć stronę obsługującą AJAX (zajrzyj do samouczka na temat korzystania z obiektu ScriptManager, jeśli nie jesteś z tym zaznajomiony). Próbowałem uzyskać dostęp do elementów HTML na stronie za pomocą kodu C # i otrzymywałem błąd informujący o identyfikatorze wartości identyfikatora HTML „nie istnieje w bieżącym kontekście”.
Aby go rozwiązać, musiałem wykonać następujące czynności:
1. Uruchom na serwerze
Aby uzyskać dostęp do elementu HTML jako zmiennej w kodzie C #, w tagu elementu HTML w pliku aspx należy umieścić następującą wartość:
runat="server"
Niektóre obiekty w przyborniku w środowisku IDE programu Visual Studio nie uwzględniają automatycznie tej wartości po dodaniu do strony.
2. Ponownie wygeneruj automatycznie wygenerowany plik C #:
Teraz element powinien być dostępny w pliku kodu C #.
źródło
wyklucz wszystkie inne strony, które odwołują się do tego samego pliku związanego z kodem, na przykład starszą stronę, którą skopiowałeś i wkleiłeś.
źródło
Miałem ten sam problem. Okazuje się, że w swoim projekcie miałem zarówno „MyPage.aspx”, jak i „Copy of MyPage.aspx”.
źródło
Upewnij się również, że nie masz plików, które przypadkowo próbują dziedziczyć lub definiować tę samą (częściową) klasę co inne pliki. Zauważ, że te pliki mogą wydawać się niezwiązane z plikami, w których pojawił się błąd!
źródło
Napotkałem ten sam błąd, z wyjątkiem tego, że był to błąd WPF. Przestawiałem projekty i miałem kontrolę zdefiniowaną w ten sposób:
<local:CustomControl Name="Custom" />
W moim kodzie próbowałem użyć Custom.Blah, ale otrzymałem błąd:
The name 'Custom' does not exist in the current context
Co mi zrobiło, zmieniło moją kontrolę w Xaml na to:
<local:CustomControl x:Name="Custom" />
Mam nadzieję, że to komuś pomoże!
źródło
Ten sam błąd pojawia się po wprowadzeniu zmian w kontekście danych. Ale napotykam coś, czego nie jestem zaznajomiony. Przyzwyczajam się do ręcznego publikowania moich plików. Zwykle, gdy to robię, w folderze publikowania nie pojawia się żaden folder App_Code. Bu zacząłem używać VS 12 publikowania, które bezpośrednio publikuje z twoją pomocą na serwerze WWW. Następnie pojawia się błąd dotyczący prekompilacji aplikacji. Następnie usuwam folder app_code, który zadziałał. Ale wtedy dostałem błąd kontekstu danych, który otrzymujesz. Więc właśnie usunąłem wszystkie pliki i uruchomiłem publikację ponownie bez ograniczeń plików (każdy folder i plik zostanie opublikowany), a potem zadziałało jak urok.
źródło
Miałem ten sam problem, mój problem polegał na braku odstępu między dwoma atrybutami ”
AutoGenerateColumns="False"DataKeyNames="ProductID"
zamiast
AutoGenerateColumns="False" DataKeyNames="ProductID"
źródło
Naprawiłem to w moim projekcie, wykonując kopię zapasową bieżących plików (więc nadal miałem swój kod), usuwając bieżący plik aspx (i strony podrzędne), tworząc nowy i kopiując zawartość plików kopii zapasowej do nowych plików.
źródło
ten błąd często występuje, gdy przegapisz
runat="server"
.źródło
Opcja rozwiązania nr 2 oferowana powyżej działa dla aplikacji Windows Forms, a nie aplikacji web aspx. Wystąpił podobny błąd w aplikacji internetowej, rozwiązałem ten problem, usuwając plik, w którym miałem kontrolę użytkownika o tej samej nazwie, ten plik aspx był w rzeczywistości plikiem kopii zapasowej i nie był nigdzie odwoływany w procesie, ale nadal powodował błąd, ponieważ nazwa kontrolki użytkownika zarejestrowana w pliku kopii zapasowej została nazwana dokładnie tak samo w pliku aspx, do którego odwoływano się w przebiegu procesu. Więc usunąłem plik kopii zapasowej i stworzyłem rozwiązanie, kompilacja się powiodła.
Mam nadzieję, że to pomoże komuś w podobnym scenariuszu.
Vijaya Laxmi.
źródło
Miałem ten sam problem, ponieważ próbowałem ponownie utworzyć plik aspx z projektu programu Visual Studio 2010, więc kontrolki miały właściwość clientidmode = "Static". Usunięcie tego problemu zostało rozwiązane.
źródło
Miałem podobny problem podczas dostosowywania Repeatera po przekonwertowaniu go z DataList.
Problem polegał na tym, że przypadkowo połączyłem 2 atrybuty podczas usuwania niepotrzebnego.
<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS"> . . . </asp:Repeater>
A to uniemożliwiło wygenerowanie repeatera w pliku projektu.
źródło
Miałem ten sam komunikat o błędzie. Mój kod był bezbłędny i działał idealnie, potem zdecydowałem się cofnąć i zmienić nazwę jednego z moich przycisków i nagle wyświetla mi się błąd kompilacji, któremu towarzyszy to niebieskie faliste podkreślenie, mówiąc, że formant nie istnieje w obecnym kontekście ...
Okazuje się, że program Visual Studio był głupi, ponieważ problem był związany z plikami kopii zapasowych, które utworzyłem z mojej klasy aspx.cs. Usunąłem je i błędy zniknęły.
źródło
Napotkałem ten sam problem. Najwyraźniej nie powinieneś nazywać klasy w BLL taką samą nazwą jak jeden z plików .aspx / .aspx.cs. Myślałem, że nie będą w tym samym zakresie itp., Ale za bardzo zepsuło to wewnętrzne działanie programu Visual Studio. Jestem trochę zaskoczony, że nie ma czegoś, co powstrzymuje Cię przed zrobieniem tego, jeśli ma to spowodować tego typu błąd. W każdym razie po prostu usuń pliki .aspx / .aspx.cs i odbuduj projekt. Następnie przynieś je z powrotem pod inną nazwą. Możesz skopiować / wkleić swój kod do innego edytora, jeśli nie chcesz ponownie wpisywać go z powrotem.
źródło
W moim przypadku, kiedy tworzyłem formularz internetowy, nosił on nazwę WebForm1.aspx i odpowiednie nazwy (WebForm1). List, zmieniłem nazwę na coś innego. Zmieniłem nazwę ręcznie w prawie wszystkich miejscach, ale jedno miejsce w pliku projektanta nadal wyświetlało go jako „WebForm1”.
To też zmieniłem i pozbyłem się tego błędu.
źródło
1) Sprawdź właściwość CodeFile w <% @ Page CodeFile = "filename.aspx.cs"%> na stronie "filename.aspx", Twój kod za nazwą pliku i nazwa właściwości powinny być takie same.
2) Możesz pominąć runat = "server" w kodzie
źródło
W moim przypadku musiałem przeszukać błędy 417 „Nie znaleziono kontrolki”, aby znaleźć rzeczywisty błąd: wymieniłem bibliotekę DLL, ale nie zaktualizowałem numeru wersji w pliku web.config. Naprawiono to i zbudowano pomyślnie, 3 minuty później wszystkie inne błędy rozwiązały się same.
źródło