2012-02-20 3 views
3

Я пытаюсь выяснить, как я могу передать модель Mvc 3 (с предварительно заполненными коллекциями) в нокаут ViewModel?Модель Mvc3 с KnockoutJs ViewModel

Любые идеи?

Заранее за вашу помощь.

Жюль

ответ

1

Вы можете просто заполнить его с вашей точки зрения Razor, написав все Mvc значения модели в связанных Js объектов. Но я бы предпочел загрузить его через вызов Ajax после загрузки страницы. Взгляните на идею здесь: Lazy loading an observable in KnockoutJS.

+0

HI, спасибо за ваш ответ. Сначала должна быть заполнена модель MVC (требование клиента). У вас есть пример того, как это сделать? –

+0

Я сыграл с этой демонстрацией Стив Сандерсон «Редактирование списка переменной длины, стиль нокаута», но он находится в Mvc2 и «новый JavaScriptSerializer(). Serialize (Model)» не возвращает данные правильного формата. –

+0

Вы используете "JavaScriptSerializer(). Serialize (Model)" непосредственно в представлении? Если это так, вы должны обернуть его в @ Html.Raw(). Вы также можете расширить свою модель и добавить метод ToJSON: [ToJSON()] (http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method -using-net-3-5.aspx) В случае, если это не сработает для вас, я недавно использовал Json.NET (Nuget: Install-Package Newtonsoft.Json) для выполнения аналогичных действий. Посмотрите [здесь] (http://james.newtonking.com/pages/json-net.aspx). – veblock