Wie kann ich Vorlagen zwischen meinem ASP.NET MVC-Backend und meinem backbone.js-Frontend freigeben?

9

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?

    
Daniel Upton 17.11.2011, 12:01
quelle

5 Antworten

1

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,

    
Geert-Jan 17.11.2011 13:52
quelle
1

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.

    
Andy Hoyle 29.05.2012 10:46
quelle
1

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.

    
Toft 14.12.2012 15:34
quelle
0

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.

    
Vladimir Bozic 02.11.2012 12:57
quelle
0

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 implementieren

Das von uns verwendete Phantomskript ist ähnlich:

%Vor%

Es gibt auch Dienste, die Ihnen dasselbe Ergebnis liefern: Ссылка

    
Val Entin 07.01.2014 22:22
quelle