Eine peinliche Sache ist, dass ich vor dem Frühlingsfest einen Code geschrieben habe. Ich weiß nicht, warum. ASPX kann den Code in ASCX.cs laden, aber die Quelldatei kann ich nicht laden Nachdem ich dieses Problem gelöst hatte, machte ich mich heute wieder an die Arbeit und stellte fest, dass das Problem durch das falsche Schreiben des @Register-Befehls von ASPX verursacht wurde.
Der richtige Weg sollte wie folgt geschrieben werden:
<%@ Register TagPrefix="myTagPrefix" TagName="ConfigNavigation" Src="/Controls/ConfigNavigation.ascx" %> Aber ich habe es wie folgt geschrieben:
<%@ Register TagPrefix="myTagPrefix" Namespace="MyWEB.Controls" Assembly="MyWebProject" %>Die letztere Schreibweise lädt nur die Klasse, die der CS-Datei entspricht, nicht jedoch den Inhalt in ASCX, wodurch ein Problem auftritt Ich bin hier angetroffen.
Im Folgenden finden Sie eine Zusammenfassung verschiedener Möglichkeiten zum Schreiben des @Register-Befehls, kompiliert unter Bezugnahme auf http://msdn.microsoft.com/zh-cn/library/c76dd5k1.aspx von MSDN:
<%@ Tagprefix="tagprefix" namespace="namespace" Assembly="assembly" %> registrieren
<%@ Tagprefix="tagprefix" namespace="namespace" %> registrieren
<%@ Register tagprefix="tagprefix" tagname="tagname" src="pathname" %>Jedes Attribut wird wie folgt beschrieben:
tagprefix
Ein beliebiger Alias, der einen kurzen Verweis auf den Namensraum des Tags bereitstellt, das in der Datei verwendet wird, die die Direktive enthält.
Namespace Der Namespace des benutzerdefinierten Steuerelements, das registriert wird.
tagname Jeder mit der Klasse verknüpfte Alias. Diese Eigenschaft wird nur für Benutzersteuerelemente verwendet.
Assembly Die Assembly, die sich in dem Namespace befindet, der dem Tagprefix-Attribut zugeordnet ist.
Der Assemblyname darf die Dateierweiterung nicht enthalten. Beachten Sie außerdem, dass der ASP.NET-Analysator bei fehlendem Assembly-Attribut davon ausgeht, dass der Quellcode im App_Code-Ordner der Anwendung vorhanden ist. Wenn Sie den Quellcode des Steuerelements auf der Seite registrieren möchten, ohne ihn zu kompilieren, platzieren Sie den Quellcode im Ordner App_Code. ASP.NET kompiliert die Quelldateien im App_Code-Ordner zur Laufzeit dynamisch.
Der Speicherort (relativ oder absolut) der deklarativen ASP.NET-Benutzersteuerdatei, die mit src und dem Tagprefix:Tagname-Paar verknüpft ist.
Der Wert des src-Attributs kann entweder ein relativer oder ein absoluter Pfad vom Stammverzeichnis der Anwendung zur Quelldatei der Benutzersteuerung sein. Aus Gründen der Benutzerfreundlichkeit wird empfohlen, relative Pfade zu verwenden. Nehmen Sie beispielsweise an, dass alle Benutzersteuerungsdateien Ihrer Anwendung im Unterverzeichnis Usercontrol des Anwendungsstammverzeichnisses gespeichert sind. Um das Benutzersteuerelement in die Datei Usercontrol1.ascx aufzunehmen, fügen Sie Folgendes in die @Register-Direktive ein:
Src="~usercontrolusercontrol1.ascx" Das Tildezeichen (~) stellt das Stammverzeichnis der Anwendung dar