Ich baue eine Anwendung in ASP.NET MVC und erwäge backbone.js für die clientseitige Interaktion etc ..
Im Idealfall, wenn die Seiten geladen sind, möchte ich, dass alle vorhandenen Inhalte auf der Serverseite vorgerendert werden und dann alle neuen Inhalte von backbone.js im laufenden Betrieb gerendert werden.
Natürlich möchte ich meine Vorlagen nicht wirklich zweimal schreiben.
Ich überlege mir, die meisten Anwendungen mit der Rasierer-Ansichts-Engine templatieren zu lassen und dann Schnurrbart-Vorlagen für die kleinen Bereiche zu verwenden, die zwischen Server und Front-End geteilt werden müssen.
Meine Frage ist, wie sieht die tatsächliche technische Umsetzung aus?
Können Sie Code-Beispiele dafür bereitstellen, wie Sie dies erreichen würden?
Zum Beispiel welche Bibliothek würden Sie verwenden, um die Vorlage auf dem Server zu rendern, und würden Sie dann den Text manuell aus der Vorlagedatei extrahieren und in das Javascript einfügen?
Nicht so sehr eine technische, sondern eine funktionale Antwort. Sehen Sie meine Antwort hier für einen funktionalen Ablauf, der server- und clientseitiges Rendering (unter Verwendung von Moustache) beinhaltet.
Barrierefreiheit und all diese JavaScript-Frameworks
>hth,
Ich bewerte derzeit Razor-Client-Vorlagen (GitHub). Es ist in der Version 0.7.0 und scheint derzeit ein bisschen spröde.
Es ermöglicht Ihnen, einzelne partielle Rasiereransichten als JavaScript-Vorlagen zu referenzieren.
Als Teil eines kommerziellen Produkts werden wir dies weiterführen, um Lenker.js-kompatible Vorlagen aus unseren Razor-Teilen auszugeben.
Wenn Sie eine RESTy MVC-Anwendung wünschen, empfehle ich ServiceStack . Es gibt ein Backbone mit einer ToDo-App , auf der Sie die Quelle anzeigen können.
Ich habe etwas Ähnliches gemacht (ohne Schnurrbart), wo der Controller das Modell als json ausgibt, damit das Backbone mit ihm arbeitet.
Haben Sie jQuery-Vorlagen in Betracht gezogen? In unserem Projekt haben wir sie verwendet und ich fand sie ziemlich nützlich. Wir haben tatsächlich dieses Ссылка verwendet, das ist eine etwas optimierte Version von jquery template für render to string. Du hast dort viele Demos. Serverseitig haben wir alle Vorlagen in einer Teilansicht platziert und gerendert.
Zuerst haben wir die Entscheidung getroffen, v8 in MVC.net und WebApi einzubetten und die Templates mit Unterstrich oder Schnurrbart zu implementieren, um genau dieselben Templates zu behalten.
Auch wenn Sie die gleichen Vorlagen haben, kann die Renderlogik anders sein und Sie müssen die Vorlagen, die Frontend-Ansichten und die Backend-Ansichten ständig neu gestalten. Besonders, wenn Sie eine erholsame api machen.
Wir haben uns schließlich für eine andere Lösung entschieden, um eine Nicht-JavaScript-Alternative für Barrierefreiheit und SEO-Anforderungen bereitzustellen, die einen kopflosen Browser (PhantomJs) zum Rendern der Seiten verwendet.
Es ist ziemlich einfach zu implementieren, Sie müssen PhantomJs auf Ihrem Server installieren, ein Javascript hinzufügen, um die Seite mit allen Javascript-Interaktionen komplett zu rendern und die HTML-Ausgabe zu bedienen.
Sie finden hier ein Anwendungsbeispiel: Ссылка
Das Beispiel ist für node.js, aber es ist einfach, es mit ASP
zu implementierenDas von uns verwendete Phantomskript ist ähnlich:
%Vor%Es gibt auch Dienste, die Ihnen dasselbe Ergebnis liefern: Ссылка
Tags und Links asp.net-mvc razor backbone.js mustache templates