2014-02-15 79 views
4

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

,而不是淘汰赛方式:

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

我不能只是做这个用剃刀?

<td>@Model.Id</td> 

我看到淘汰赛现在包含在MVC 4中,但不知道如何利用它。

对不起,如果这之前已经问过,但我做了一些搜索,但我找不到任何清楚的东西。

+0

这样做的好处之一是在服务器上减少负载,在客户端上减少更多负载。您可以让本地客户端处理所有数据绑定或让服务器。 –

回答

11

基本上,MVVM js框架(如knockoutjs)旨在用于单页应用程序,其中您具有最少的服务器端逻辑,单个服务器处理程序或MVC控制器操作(如果您愿意),即服务某些HTML。所有的应用程序逻辑都是用javascript编写的。只有来自客户端的REST服务的AJAX调用,并且所有视图模型都位于客户端上。服务器将仅向客户端发送初始JSON模型,但与该模型的所有交互都将发生在客户端上。

因此,尽管您可以在Razor中实现大量逻辑,但这仍然可以保持服务器端的处理。如果你想要一个完全在客户端实现的非常动态的应用程序,你可以考虑在客户端上使用这样的框架。

+0

不一定是SPA.Routes可能仍然保留在服务器上 – Rod