Asp.net mvc 带ASP.NET MVC和Razor的Knockout.js

Asp.net mvc 带ASP.NET MVC和Razor的Knockout.js,asp.net-mvc,razor,knockout.js,Asp.net Mvc,Razor,Knockout.js,有人能解释一下我为什么要在ASP.NET MVC中使用Knockout.js吗?做一些研究,看起来knockout.js的主要用途是用于数据绑定。但是,当我可以用强类型视图和Razor绑定元素时,为什么我需要使用knockout.js呢 而不是击倒方式: <td data-bind="text: Id"></td> 我不能用剃须刀吗 <td>@Model.Id</td> @Model.Id 我看到淘汰赛现在包含在MVC4中,但不确定如何利

有人能解释一下我为什么要在ASP.NET MVC中使用Knockout.js吗?做一些研究,看起来knockout.js的主要用途是用于数据绑定。但是,当我可以用强类型视图和Razor绑定元素时,为什么我需要使用knockout.js呢

而不是击倒方式:

<td data-bind="text: Id"></td>

我不能用剃须刀吗

<td>@Model.Id</td>
@Model.Id
我看到淘汰赛现在包含在MVC4中,但不确定如何利用它


很抱歉,如果以前有人问过这个问题,我在上面做了一些搜索,但是我找不到任何对我来说清楚的东西。

基本上,MVVM js框架(如knockoutjs)用于单页应用程序,在这些应用程序中,如果您愿意,您可以使用最少的服务器端逻辑、单个服务器处理程序或MVC控制器操作,那就是提供一些HTML。所有的应用程序逻辑都是用javascript编写的。只有来自客户端的对REST服务的AJAX调用,并且所有视图模型都位于客户端上。服务器将只向客户机发送一个初始JSON模型,但与该模型的所有交互都将在客户机上进行


所以,虽然您可以在Razor中实现许多逻辑,但这仍然是服务器端处理。如果你想要一个完全在客户端上实现的非常动态的应用程序,你可以考虑在客户端上使用这种框架。

这其中的一个好处是将更少的负载放到服务器上,更多的是在客户端上。您可以让本地客户端处理所有数据绑定,也可以让服务器处理。不一定是SPA。路由可能仍保留在服务器上