Ich möchte wiederverwendbare Steuerelemente erstellen, die auf einer knockout / jquery / asp.net mvc-Seite verwendet werden
Zum Beispiel können verschiedene Elemente eine Diskussion (eine Liste von Kommentaren) haben. Ich möchte eine Diskussionskontrolle, die das Anzeigen und Hinzufügen von Kommentaren usw. Behandelt.
erste Gedanken sind, eine Teilansicht zu verwenden, um das HTML zu injizieren, und dann .js-Datei mit etwas Javascript zu haben, das das Knockout Viewmodel einrichtet. Es scheint jedoch ein wenig klobig. Ich frage mich nur, ob jemand eine wirklich nette Art hat, all dies zu tun und es als nette Kontrolle zu verpacken?
Hier ist ein Ansatz.
Sie haben einen separaten WebAPI-Controller für die Verarbeitung des Datenzugriffs von der Clientseite.
%Vor% Ihre MVC-Controller haben Aktionen, die PartialViewResults
zurückgeben. Es ist eine einfache Aktion, die eine Teilansicht zurückgibt.
Ihre Teilansicht macht Ihr Markup mit Knockout-Bindings aus. Wir erstellen eine eindeutige ID für unseren HTML-Code, damit wir unser Knockout-View-Modell an diesen bestimmten Abschnitt der Seite binden können (vermeiden Sie Konflikte mit anderen Knockout-Komponenten auf der Seite). Das JavaScript, das wir benötigen (knockout viewmodels etc.), wird eingebunden, ein neues ViewModel erstellt und Knockout-Bindings angewendet.
%Vor%In unserem JavaScript definieren wir unsere Knockout Viewmodels etc.
%Vor% Und wir sind fertig! Um diese neue Komponente zu verwenden, können wir RenderAction
Wenn Sie unter "Steuerelement" die Art der Kontrolle verstehen, die wir von ASP.NET-WebForms gewohnt sind, ist das, was Sie in ASP.NET MVC am nächsten haben, HTML-Helfer . Da es sich im Grunde genommen nur um normale .NET-Methoden handelt, die HtmlString
zurückgeben, können Sie verpacken Sie einfach alles, was Sie wollen, in eine Assembly, die diese Methoden zusammen mit eingebetteten Ressourcen
Tags und Links asp.net-mvc knockout.js c# jquery asp.net-mvc-4