¿Cómo puedo generar modelos de vista del lado del cliente para knockout en un proyecto MVC de ASP.NET?

Actualmente estoy trabajando en una solución MVC de ASP.NET y recientemente introduje Knockout (una biblioteca MVVM JS) y Wijmo (un conjunto de widgets de jQuery UI).

Con la introducción de Knockout, también necesito tener modelos en el lado del cliente, por lo que para este propósito estoy serializando el ViewModel C # y lo adjunto a la vista usandodata-model="@Model.ToJson()". Esto me permite recuperar el modelo de JS y aplicar algo de amor del lado del cliente a todo.

Sin embargo, el knockout necesita que todo sea observable, por lo que debo declarar un ViewModel del lado del cliente y asignar todo desde el objeto del modelo de datos. Esto se parece mucho a un esfuerzo duplicado y me gustaría evitarlo de alguna manera.

Espero que alguien tenga una herramienta o técnica para compartir que me permita renderizar el ViewModel knockout directamente desde el servidor. La posible solución podría incluir:

La serialización JSON personalizada para representar el modelo de vista observable directamente a la salida en el atributo de modelo de datos.Transformación automática del lado del cliente (he oído hablar de ko-autobind, pero no estoy seguro de si sería una ruta recomendada o cuán estable / completa es)Algo que no he pensado

Me gustaría que la solución fuera genérica y automática, ya que mi enfoque actual de escribir a mano los modelos de vista observables del lado del cliente es demasiado improductivo para ser viable.

¿Cómo estás resolviendo este problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta