我正在尝试为正在处理的ASP.NET MVC 4应用程序获取MVVM安装程序。最近我遇到了John Papa的优秀演示/代码示例(可以在这里查看http://www.johnpapa.net/recent-presentation-on-spa-basics/)。在多页面应用程序中使用Breeze
他谈论的是有一个jquery/knockout.js/breeze.js软件堆栈,但仅限于单页面应用程序(SPA)的上下文中。
翻遍代码 - 我看到bootstrapper.js整齐地设置了所有视图的绑定。
ko.applyBindings(vm.sessions, $(app.viewIds.sessions).get(0));
ko.applyBindings(vm.speakers, $(app.viewIds.speakers).get(0));
ko.applyBindings(vm.session, $(app.viewIds.session).get(0));
如果我有更多的CSHTML文件,分割更复杂的应用程序的意见,我怎么能很好地处理引导捆扎导航发生什么呢?
关于要求/文本的方法,你应该看看[Durandal](http://durandaljs.com/)。你可能很快会听到更多的消息。 – Ward
@John Papa听起来像require.js/text.js,我们可以干净地将视图和视图模型“捆绑”在一起,这有助于在我们缩放应用程序时保持复杂性。我已经阅读了一些关于Backbone.js的内容,但是随后开始讨论MVC和MVVM之间的讨论。我个人的经验一直是ASP.NET MVC 4中的约10个视图,逻辑遍布在“ui模型”,控制器和视图之间,这违反了适当的关注点分离。我还使用MVVM开发了Silverlight 5项目,并且与MVC项目相比,更多的视图(〜35)更易于管理。 –
我见过这两种方式。我同意你对分离的担忧是有效的。 JavaScript有很多分离模式。 AMD和require.js可以帮助那些相当好的用户。 –