我目前工作的一个ASP.NET MVC解决方案,最近推出了两种敲除(一个MVVM JS库)和Wijmo(一组的jQuery UI部件)。
通过引入基因敲除我还需要对客户端的机型,所以为了这个目的,我序列化的C#视图模型,并用它连接到视图data-model="@Model.ToJson()"
。 这使我检索JS模型和应用一些客户端爱的一切。
然而,基因敲除需要的一切是可观的,所以我需要声明一个单独的客户端视图模型和绘制一切从数据模型对象。 这感觉很像重复劳动,我想,以避免它在某种程度上。
我希望有人有工具或技术共享,让我直接从服务器渲染淘汰赛视图模型。 可能的解决方案包括:
- 定制JSON序列来直接呈现可观察到的视图模型在数据模型属性的输出。
- 自动客户端转换(我听说过KO-autobind的,但我不知道这是否会采取或如何稳定推荐路径/完成它)
- 这是我没有想到的
我想该解决方案是通用和自动化,为我目前的手动输入可观察的客户端视图模型的做法实在是太非生产性是可行的。
你是如何解决这个问题?
根据他们的教程,它只是一个简单的.map
功能
如果是这样的视图模型
function Task(data) {
this.title = ko.observable(data.title);
this.isDone = ko.observable(data.isDone);
}
而这个函数来获取是来自服务器的数据,它使用.map
功能向右注入服务器数据到VM
// Data
var self = this;
self.tasks = ko.observableArray([]);
// Load initial state from server, convert it to Task instances, then populate self.tasks
$.getJSON("/tasks", function(allData) {
var mappedTasks = $.map(allData, function(item) {
return new Task(item)
});
self.tasks(mappedTasks);
});
我映射http://knockoutjs.com/documentation/plugins-mapping.html
对于自动绑定下面是一个例子
https://groups.google.com/forum/#!msg/knockoutjs/IJTx37UXQVw/UTrWdEK1C-oJ
试试这个撑着为Visual Studio http://visualstudiogallery.msdn.microsoft.com/32c15a80-1c54-4e96-a83f-7cd57573a5d2
文章来源: How can I generate client-side view models for knockout in an ASP.NET MVC project?