Custom Control in ASP.NET C#
Erstellte ich ein einfaches benutzerdefiniertes Steuerelement, das nur erbt von der Literal
Kontrolle, und nicht irgendwelche Erweiterungen noch, der code ist leer.
Namespace: CustomControls
Klasse name: Literal : System.Web.UI.WebControls.Wörtliche
Nächste, was ich tun müssen, ist registrieren diese Kontrolle in der aspx
Seite wie folgt:
<%@ Register TagPrefix="web" Namespace="CustomControls" %>
(Ich lese in einigen tutorials, dies ist einer der Wege, um es zu registrieren, neben dem web.config etc.)
Nachdem alle, nicht intellisence für mich, und schlimmer noch - ich bekomme einen parse-error 'unknown server tag: Internet", wenn ich versuche zu laufen, die Seite mit dem Steuerelement.
Ich verwendet 'neues Projekt erstellen' und nicht neue website, falls diese info benötigt wird.
Was könnte mein problem sein?
Vielen Dank im Voraus.
Wo gibt es in Ihrem benutzerdefinierten Steuerelement-Klasse vorhanden? Ist es eine class-Datei im website-Projekt oder ist es in Ihrem eigenen Projekt?
So haben Sie zwei Projekte, eines für die 'CustomControls' und eine weitere für das web-Projekt?
Ich denke er meint er tut das als Web-Anwendung-Projekt, und nicht als Website-Projekt. Die beiden Verhalten sich ein wenig anders.
das problem tritt in WebApplicationProject in VS2008
InformationsquelleAutor geevee | 2010-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie ich es gemacht habe, Schritt für Schritt starten aus dem nichts. Die erste Methode verwendet ein zweites Projekt - /Montage. Für das App_code-version nach unten scrollen.
Web-Anwendung-Projekt-Methode
Stellen im code ähnlich dem folgenden für die Klasse defenition:
Fügen Sie die folgende register-tag an die Spitze Ihrer aspx-Seite
<%@ Register assembly="WebApplication2" namespace="CustomControls" tagprefix="web" %>
Wenn Ihre assembly-name war anders, dann ändere es hier. Ich habe bemerkt, dass wenn ich dies Tat VB.Net das war namespace WebApplication1.CustomControls statt nur CustomControls, wie es war in C#, irgendwie merkwürdig.
Fügen Sie das neue Steuerelement auf die Seite:
<web:Literal ID="Literal1" runat="server" Text="test" />
Separates Projekt-Methode
Fügen Sie eine neue Klasse in das neue Projekt namens Literal (ich bin mit C# also meine Datei heißt Literal.cs). Unten ist mein super basic-code, ich glaube dass sollte mit dem code, der in der Frage beschriebenen.
Fügen Sie einen Verweis auf das Projekt CustomControls zu Ihrer website.
Fügen Sie die assembly-Registrierung an die Spitze der aspx-Seite:
<%@ Register assembly="CustomControls" namespace="CustomControls" tagprefix="web" %>
Fügen Sie eine neue Instanz des Steuerelements auf Ihrer Seite:
<web:Literal ID="Literal1" runat="server" Text="test" />
Im App_Code-Methode
Hinzufügen einer neuen Klasse in den App_Code Ordner Literal2 (ich bin mit C# also meine Datei heißt Literal2.cs). Unten ist mein super basic-code, ich glaube dass sollte mit dem code, der in der Frage beschriebenen. Ich nannte es 2, so dass Sie können verwenden Sie diese in Verbindung mit der oben beschriebenen Methode ohne Fehlermeldungen kompilieren
Registrieren Sie die assembly/namespace für app_code in Ihrer aspx-Seite durch hinzufügen der folgenden Zeile an den Anfang
<%@ Register Namespace="CustomControls" Assembly="__code" tagprefix="web" %>
Fügen Sie eine Instanz der neuen Steuerung auf Ihrer Seite:
<web:Literal2 ID="literal2" runat="server" Text="test2" />
Getestet habe ich diese mit visual studio und es hat alles gut für mich.
Ich aktualisiert meine Antwort, um Web-Anwendung Richtungen (Sie oben).
Bitte lassen Sie mich wissen, wenn ich den code gepostet, die nicht für Sie arbeiten.
InformationsquelleAutor Peter
Können Sie sich auch registrieren Sie Ihre Kontrolle im web.config-wenn Sie möchten, es zu benutzen auf anderen Seiten
Web-site das wird funktionieren,
Wenn Sie eine Webanwendung erstellt, die Projekt, das Sie haben eine Baugruppe, siehe: dl.dropbox.com/u/6561262/project-settings.png
InformationsquelleAutor orjan
Liegt das problem in Ihrem
<%@ Register TagPrefix="web" Namespace="CustomControls" %>
tag: es findet den Namen der assembly!Muss es zu
<%@ Register TagPrefix="web" Namespace="CustomControls" Assembly="YourAssemblyName" %>
. Wenn Sie Schwierigkeiten haben, den Namen der assembly für Ihre Klasse hier sind ein paar Tipps:ASP.App_Code
funktionieren sollteAnsonsten bitte geben Sie uns einige Informationen über Projekt-layout!
InformationsquelleAutor usr-local-ΕΨΗΕΛΩΝ
Die einfachste Sache zu tun, ist per drag-and-drop die Wörtliche.ascx auf der Seite (wenn die Seite in der gleichen Lösung) .Wenn die Seite eine andere Lösung, man könnte hinzufügen, das Steuerelement VS toolbox und drag-and-drop das Steuerelement auf der Seite.
InformationsquelleAutor Vijay Sirigiri
Vergessen Sie das src-Attribut.
InformationsquelleAutor