Wie kann ich clientseitige Ansichtsmodelle für das Knockout in einem ASP.NET MVC-Projekt generieren?

Ich arbeite derzeit an einer ASP.NET MVC-Lösung und habe vor kurzem sowohl Knockout (eine MVVM JS-Bibliothek) als auch Wijmo (eine Reihe von Widgets für die jQuery-Benutzeroberfläche) eingeführt.

Mit der Einführung von Knockout muss ich auch Modelle auf der Clientseite haben. Zu diesem Zweck serialisiere ich das C # -Ansichtsmodell und hänge es mit an die Ansicht andata-model="@Model.ToJson()". Auf diese Weise kann ich das Modell von JS abrufen und auf alles eine clientseitige Liebe anwenden.

Beim Knockout muss jedoch alles beobachtbar sein. Daher muss ein separates clientseitiges ViewModel deklariert und alles aus dem Datenmodellobjekt zugeordnet werden. Das fühlt sich sehr nach doppelter Anstrengung an und ich möchte es irgendwie vermeiden.

Ich hoffe, dass jemand ein Tool oder eine Technik zum Teilen hat, mit der ich das Knockout-ViewModel direkt vom Server rendern kann. Mögliche Lösung könnte umfassen:

Benutzerdefinierte JSON-Serialisierung zum Rendern des beobachtbaren Ansichtsmodells direkt für die Ausgabe im Datenmodellattribut.Automatische clientseitige Transformation (Ich habe von ko-autobind gehört, bin mir aber nicht sicher, ob es sich um einen empfohlenen Pfad handelt oder wie stabil / vollständig er ist)Daran habe ich nicht gedacht

Ich möchte, dass die Lösung generisch und automatisch ist, da mein derzeitiger Ansatz, die beobachtbaren clientseitigen Ansichtsmodelle von Hand zu tippen, einfach zu unproduktiv ist, um praktikabel zu sein.

Wie lösen Sie dieses Problem?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage