Frage

Ich habe eine Web-Anwendung, die ich arbeite (ASP.NET2.0 mit C #, mit VS2005). Alles funktioniert gut, und ganz plötzlich erhalte ich die Fehlermeldung:

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

und 43 andere von der Art, für jedes Mal, dass ich eine Kontrolle in meinem Code-Behind der Seite verwendet wird.

Dies geschieht nur für 1 Seite. Und es ist, als ob der Code-Behind nicht die Kontrollen zu erkennen. Eine weitere interessante Sache ist, dass der Intellisense wird keine der Kontrollen Aufnehmen entweder ..

Ich habe versucht, die Lösung Datei bereinigen, die OBJ-Datei löschen, schließen Sie die Dateien aus dem Projekt dann erneut hinzufügen sie, in der Nähe VS und starten Sie ihn neu, und auch meinen Computer neu starten, aber keiner von ihnen gearbeitet hat.

War es hilfreich?

Lösung

Überprüfen Sie den Code hinter Dateinamen und Inherits-Eigenschaft auf der @Page Richtlinie sicherstellen, dass sie beide übereinstimmen.

Andere Tipps

Ich weiß, das ist eine alte Frage, aber ich hatte ein ähnliches Problem und wollte meine Lösung für den Fall schreiben es jemanden anderes profitieren könnte. Ich traf das Problem beim Lernen zu verwenden:

  • ASP.NET 3.5
  • C #
  • VS2008

Ich habe versucht, eine AJAX-fähige Seite zu erstellen (Blick in ein Tutorial über das Scriptmanager-Objekt verwenden, wenn Sie mit diesem nicht vertraut sind). Ich habe versucht, die HTML-Elemente auf der Seite über das C # -Code zugreifen zu können, und ich erhalte eine Fehlermeldung, die die Bezeichner für den HTML-ID-Wert Angabe „nicht im aktuellen Kontext vorhanden ist.“

Um es zu lösen, hatte ich folgendes zu tun:

1. Führen Sie auf dem Server

Um das HTML-Element als eine Variable in C # Code zugreifen, der folgende Wert muss in dem HTML-Element-Tag in der aspx-Datei abgelegt werden:

runat="server"

Einige Objekte in der Toolbox in dem Visual Studio IDE nicht automatisch diesen Wert enthalten, wenn auf der Seite hinzugefügt.

2. Generieren Sie die automatisch generierten C # Datei:

  • Im Projektmappen-Explorer unter der aspx-Datei sollte es zwei Dateien sein: * aspx.cs und * .aspx.designer.cs. Die Designer-Datei automatisch generiert wird.
  • Löschen Sie die vorhandene * .aspx.designer.cs Datei. Stellen Sie sicher, dass Sie nur löschen Sie die Designer Datei. Sie nicht den anderen löschen, weil es Ihre C # Code für die Seite enthält.
  • Rechtsklick auf die übergeordnete aspx-Datei. Im Pop-up-Menü wählen Sie Convert to Web Application .

Nun sollte das Element in der C # -Code-Datei zugänglich sein.

schließen alle anderen Seiten, die den gleichen Code-Behind-Datei verweisen, zum Beispiel eine ältere Seite, die Sie kopiert und eingefügt.

Ich hatte das gleiche Problem. Es stellt sich heraus, dass ich beide „MyPage.aspx“ hatte und „Kopie von MyPage.aspx“ in meinem Projekt.

Also, stellen Sie sicher, dass Sie keine Dateien, die versehentlich versuchen, das gleiche (teilweise) Klasse als andere Dateien zu erben oder zu definieren. Beachten Sie, dass diese Dateien auf die Dateien nicht verwandt scheinen, wo der Fehler tatsächlich erschienen!

Ich lief in diesen gleichen Fehler, außer es ist ein WPF Fehler war. Ich war Projekte neu anordnen und hatte eine Kontrolle definiert in wie folgt aus:

<local:CustomControl Name="Custom" /> 

In meinem Code hinter ich Custom.Blah versucht mit, aber ich habe den Fehler:

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

Was ist der Trick für mich tat, war meine Kontrolle in XAML dies zu ändern:

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

Hope, das hilft jemand da draußen!

Ich bekomme den gleichen Fehler, nachdem ich Änderungen mit meinen Daten als Ganzes zu beziehen. Aber ich Begegnung etwas, das ich mit unbekannter bin. Ich werde verwendet, um meine Dateien manuell zu veröffentlichen. Normalerweise wird im Veröffentlichungsordner, wenn ich tun, dass es keinen Ordner App_Code ist. Bu i begann VS 12-Publishing zu verwenden, die direkt mit Ihrer Hilfe zum Web-Server veröffentlicht. Und dann bekomme ich die Fehlermeldung über Anwendung vorkompilierte wird. Dann löschen i Ordner App_Code es funktionierte. Aber dann gab es mir den Datenkontext Fehler, die Sie bekommen. Also habe ich gelöscht einfach alle Dateien, und führen Sie die veröffentlichen wieder ohne Dateieinschränkungen dann (jeder Ordner & Datei wird veröffentlicht) es wie ein Charme.

Ich hatte das gleiche Problem, mein Problem mit nicht Raum zwischen zwei Attributen "

AutoGenerateColumns="False"DataKeyNames="ProductID"

statt

AutoGenerateColumns="False" DataKeyNames="ProductID"

Ich reparierte dies in meinem Projekt durch die aktuellen Dateien zu sichern (so hatte ich noch meinen Code), die aktuelle aspx Löschen (und untergeordnete Seiten), einen neuen zu machen, und das Kopieren die Inhalte der Backup-Dateien in die neuen Dateien.

Dieser Fehler tritt häufig auf, wenn Sie runat="server" verpassen.

Lösung Option # 2 oben genannten Arbeiten für Fenster angeboten bildet Anwendungen und nicht Web aspx Anwendung. Ich habe ähnliche Fehler in Web-Anwendung, ich beschlossen, diese durch das Löschen einer Datei, wo ich mit dem gleichen Namen ein Benutzersteuer hatte, diese aspx Datei war tatsächlich eine Backup-Datei und nicht überall in den Prozess verwiesen, aber es verursacht immer noch den Fehler, da der Name des Steuer Benutzer auf der Backup-Datei registriert wurde exakt gleiche auf der aspx Datei mit dem Namen, der in dem Prozessfluss verwiesen wurde. So löschte ich die Backup-Datei und integrierte Lösung gelang es zu bauen.

Hope, das hilft jemanden in ähnlichem Szenario.

Vijaya Laxmi.

Ich hatte das gleiche Problem, da ich die aspx-Datei aus einem Visual Studio 2010-Projekt wieder wurde Tring zu erzeugen, so dass die Kontrollen ClientIDMode = „Static“ Eigenschaft hatten. Wenn diese entfernt wurde beschlossen.

Ich hatte ein ähnliches Problem, wenn sie mit einem Repeater zwicken, nachdem es von einem Datalist zu konvertieren.

Das Problem war, dass ich zwei Attribute versehentlich vereint, wenn ein nicht mehr benötigt man löschen.

<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
    .
    .
    .
</asp:Repeater>

Und das die Erzeugung des Repeaters in der Zeichnungsdatei verhindert.

Ich hatte die gleiche Fehlermeldung. Mein Code fehlerfrei war und gut funktionierend, dann entschied ich mich zurück zu gehen und einen meiner Tasten umbenennen und plötzlich ist es mir einen Compiler-Fehler durch die blauen verschnörkelte unterstreichen sagen begleitet zu geben, dass die Regelung nicht im aktuellen Kontext nicht vorhanden ist ...

Es stellt sich heraus Visual Studio stumm wurde, wie das Problem auf die Backup-Dateien verwendet war ich meine aspx.cs Klasse gemacht hatte. Ich löschte diese und die Fehler ging weg.

Ich lief in das gleiche Problem. Offenbar sollten Sie nicht eine Klasse in der BLL nennen die gleichen Namen wie eine der ASPX / aspx.cs Dateien. Ich dachte, sie nicht im gleichen Umfang wäre, usw., aber es verwirrte mit Visual Studio, die internen Abläufe zu viel. Ich bin ein wenig überrascht es nicht etwas, das Sie zu verhindern, dies zu tun, wenn sie diese Art von Fehler produzieren wird. Wie auch immer, löschen Sie einfach die ASPX / aspx.cs Dateien und Ihr Projekt neu. Dann bringen sie in unter einem anderen Namen sichern. Sie können Ihren Code in einen anderen Editor kopieren / einfügen, wenn Sie alles wieder in neu eingeben nicht wollen.

In meinem Fall, wenn ich das Web-Formular erstellt, wurde es als WebForm1.aspx und die jeweiligen Namen (WebForm1) benannt. Letter, umbenannt ich das etwas anderes. Ich umbenannt manuell an fast allen Orten, aber ein Platz in Designer-Datei immer noch zeigt es als ‚WebForm1‘.

Ich änderte das auch und habe diesen Fehler beseitigen.

1) Überprüfen Sie die Codefile-Eigenschaft in <% @ Page Codefile = "filename.aspx.cs" %> in "filename.aspx" Seite, Ihr Code hinter Dateinamen und diese Eigenschaft Name sollte gleich sein.

2) Sie können verpassen runat = "server" im Code

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top