Asp.net mvc 4 没有JS框架的MVC4 SPA?

Asp.net mvc 4 没有JS框架的MVC4 SPA?,asp.net-mvc-4,single-page-application,Asp.net Mvc 4,Single Page Application,我花了几乎一整天的时间研究在MVC4上使用SPA的可能性。我遇到了一个又一个模板和一个又一个JS框架。人们正在使用Knockout、Backbone.js、Breeze.js和其他许多框架。似乎很多人都在使用MVVM来显示数据 但我真正想要的是,是否有一种方法可以开发一个SPA,它不依赖于多个JS框架来工作。是否有一些最低限度的设置使用最少的插件和框架来让SPA工作?我注意到我们可以只使用History.js,但是我们需要某种路由抽象,对吗?那么,如果我们只想设置简单的路由(浏览器历史记录管理)

我花了几乎一整天的时间研究在MVC4上使用SPA的可能性。我遇到了一个又一个模板和一个又一个JS框架。人们正在使用Knockout、Backbone.js、Breeze.js和其他许多框架。似乎很多人都在使用MVVM来显示数据

但我真正想要的是,是否有一种方法可以开发一个SPA,它不依赖于多个JS框架来工作。是否有一些最低限度的设置使用最少的插件和框架来让SPA工作?我注意到我们可以只使用History.js,但是我们需要某种路由抽象,对吗?那么,如果我们只想设置简单的路由(浏览器历史记录管理),而不是MVVM呢?有这样做的选择吗


(请告诉我是否可以更好地表达我的问题,或者我是否可以改进它)

您可以在页面加载和动态加载视图上配置sammy.js或history.js

 sammy.get('#/(.*)', function (context) {
      var url = this.params['splat'];
      $("#main").load(url);
 });
例如,如果我们加载localhost:333/Home/ContactUs。。。它将读取contact us视图并动态加载内容

如果您想为SPA选择js框架,可以比较以下其他库。我认为angular涵盖了spa作为单个库的所有要求。

太好了,谢谢您的回复!还有一件事我一直很困惑,那就是MVC4。因此,我理解能够单击页面上的链接来动态加载视图(它在URL中显示localhost:333/Home/ContactUs,但通过AJAX加载视图)。但是设置MVC4怎么样,这样当有人直接浏览到localhost:333/Home/ContactUs时,它就不仅仅进入PartialView了?如何让MVC4和sammy.js或history.js无缝地协同工作?您必须配置sammy或history.js。。。我正在使用sammy.js,它非常好,当您配置它时,很多事情都会对您来说很清楚。当有人直接打开它时,它肯定会打开部分视图,但您可以在控制器中检查它的ajax请求是否。。。js与哈希基url配合使用,您可以定义不同的路由并执行操作