Was ist der Unterschied zwischen CodeFile = "file.ascx.cs" und CodeBehind? = "file.ascx.cs" in der Deklaration eines ASP.NET-Benutzersteuerelements?
Ist eine neuere oder empfohlen? Oder haben sie eine bestimmte Verwendung?
CodeBehind : Muss kompiliert werden (ASP.NET 1.1-Modell). Die kompilierte Binärdatei wird im Ordner bin der Website abgelegt. Sie müssen vor der Bereitstellung eine Kompilierung in Visual Studio durchführen. Es ist ein gutes Modell, wenn der Quellcode nicht als einfacher Text angezeigt werden soll. Zum Beispiel bei der Lieferung an einen Kunden, für den Sie nicht verpflichtet sind, Code bereitzustellen.
CodeFile : Sie stellen der Quelldatei die Lösung für die Bereitstellung zur Verfügung. Die ASP.NET 2.0-Laufzeit kompiliert den Code bei Bedarf. Die kompilierten Dateien befinden sich unter Microsoft.NET [.NET-Version] \ Temporäre ASP.NET-Dateien.
Codebehind-Dateien müssen vor dem Ausführen kompiliert werden, aber in src müssen wir sie nicht kompilieren und dann ausführen. Speichern Sie einfach die Datei.
quelle
but in src
- Du meinstbut in the CodeFile
?Ich arbeite mit einem Anwendungsprojekt in Visual Studio Express 2012 für das Web und verwende .NET 4.0. Im Code hinter den Dateien für meine Anmelde- und Kennwortseiten habe ich eine Situation gefunden, in der ich sowohl CodeBehind als auch CodeFile in der Deklaration benötigte.
Wenn ich keine Codedateireferenz wie hinzufüge
Die Webseite wird nicht analysiert und der Browser zeigt einen Parserfehler an. Es spielt keine Rolle, ob ich das Projekt kompiliere oder nicht.
Wenn ich keinen Code hinter der Referenz wie hinzufüge
Verweise auf Sicherheitsklassen wie MembershipUser schlagen sowohl beim Kompilieren als auch beim Versuch, Intellisense zu verwenden, mit dem Fehler "Der Typ oder Namespace MembershipUser kann nicht gefunden werden" fehl. Ich habe einen Verweis auf System.Web.ApplicationServices hinzugefügt, wie vom .NET 4.0-Framework gefordert.
Ich sollte hinzufügen, dass diese problematischen Dateien in einer Anwendung auf der Website ausgeführt werden, die mit dem IIS-Anwendungstool erstellt wurde. Wenn ich die Website von Visual Studio aus öffne, habe ich keine Probleme mit Parser- oder Referenzfehlern. Diese Verwirrung tritt nur auf, wenn ich die Anwendung als Projekt in Visual Studio öffne.
quelle