MVC3 и KnockoutJS DRYly - PullRequest
       6

MVC3 и KnockoutJS DRYly

3 голосов
/ 22 февраля 2012

Таким образом, я всегда работал с MVC в .Net, создавая ViewModel для каждого View.

Теперь, используя Knockout, я бы создал свои ViewModels в javascript вместо класса C #?И тогда моя основная модель (в данном случае EF-сгенерированные модели) будет моей единственной моделью C # Model?Или я все же продолжу создавать класс ViewModel на C # вместе с Knockout ViewModel?

Я пытаюсь настроить этот проект DRYly, но я не уверен в лучших практиках в этой ситуации.

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Вы можете создавать модели представления (ВМ) для стороны сервера C #, но они по-прежнему предназначены для представлений ASP.NET MVC.Затем создайте виртуальные машины для представлений javascript на стороне клиента.Но то, что мне понравилось больше всего, - это использовать MVC Views в качестве основы для страницы, и чтобы модели были основой для моделей JavaScript.В этом случае единственной виртуальной машиной будет виртуальная машина JavaScript, поскольку большая часть презентации выполняется на стороне клиента.Другими словами, сделайте более статичное соединение в MVC, затем выполните динамическое взаимодействие на стороне клиента.

Если вы строите в основном с использованием клиентских библиотек JS, таких как KO, я бы не стал начинать с виртуальной машины для MVC, если у вас нет веских причин для этого.

Если у вас есть конкретные вопросы, я с радостью постараюсь вам помочь.

1 голос
/ 22 февраля 2012
  1. Создайте модели просмотра, как вы всегда делаете.
  2. Создание помощника HTML, который генерирует модель представления KO из него.
0 голосов
/ 22 февраля 2012

Вы должны основывать свою модель представления Knockout на данных представления с сервера, чтобы, по крайней мере, инициализировать ее данными с сервера без необходимости отдельного запроса для получения этих данных.

При желании вы можете использовать подключаемый модуль для сопоставления данных вида с вашей моделью представления.

...