Como posso gerar modelos de visualização do lado do cliente para o knockout em um projeto ASP.NET MVC?

Atualmente, estou trabalhando em uma solução ASP.NET MVC e introduzi recentemente o Knockout (uma biblioteca MVVM JS) e o Wijmo (um conjunto de widgets da UI do jQuery).

Com a introdução do Knockout eu também preciso ter modelos no lado do cliente, então para este propósito eu estou serializando o C # ViewModel e anexando-o à vista usandodata-model="@Model.ToJson()". Isso me permite recuperar o modelo do JS e aplicar algum amor do lado do cliente a tudo.

No entanto, o nocaute precisa de tudo para ser observável, portanto, preciso declarar um ViewModel separado do lado do cliente e mapear tudo a partir do objeto de modelo de dados. Isso parece muito com um esforço duplicado e eu gostaria de evitá-lo de alguma forma.

Espero que alguém tenha uma ferramenta ou técnica para compartilhar que me permita renderizar o ViewModel diretamente do servidor. Possível solução pode incluir:

Serialização JSON customizada para renderizar o modelo de visualização observável diretamente para a saída no atributo de modelo de dados.Transformação automática do lado do cliente (ouvi falar de ko-autobind, mas não tenho certeza se seria um caminho recomendado para ser usado ou quão estável / completo é)Algo em que não pensei

Eu gostaria que a solução fosse genérica e automática, já que minha abordagem atual de digitar os modelos observáveis ​​do lado do cliente lado a lado é muito pouco produtiva para ser viável.

Como você está resolvendo esse problema?

questionAnswers(2)

yourAnswerToTheQuestion