使用ASP.NET MVC和Razor的Knockout.js

4

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

与Knockout不同的方式:

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

我能否只使用 Razor 来完成这个任务?

<td>@Model.Id</td>

我看到 knockout 现在已经包含在 MVC 4 中,但不确定如何利用它。

如果这个问题之前已经被问过了,那我很抱歉,但是我在 Stack Overflow 上进行了一些搜索,但找不到对我来说清晰的答案。


其中一个好处是减轻服务器的负担,增加客户端的负担。您可以让本地客户端处理所有数据绑定或让服务器处理。 - Moe Bataineh
1个回答

11

基本上,像knockoutjs这样的MVVM js框架旨在用于单页面应用程序,在这种应用程序中,您最少需要服务器端逻辑,一个服务器处理程序或MVC控制器操作(如果您愿意),提供一些HTML。所有应用程序逻辑都是使用javascript编写的。仅从客户端调用REST服务的AJAX调用,并且所有视图模型都存储在客户端上。服务器只会向客户端发送初始的JSON模型,但与该模型的所有交互都将在客户端上进行。

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


不一定是单页应用。路由仍然可以留在服务器上。 - Rod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接