使用MVC 3的Knockout java脚本库有哪些主要优点

Ram*_*shi 5 razor asp.net-mvc-3 knockout.js

今天我正在研究Knockout JavaScript库及其功能.现在我想在MVC 3应用程序中使用它,但在MVC 3中使用它有什么好处?

Pau*_*yng 11

Knockout是一个与javascript ViewModel一起使用的MVVM模式.这与MVC一起使用的原因是在JSON中与javascript模型的序列化非常简单.

此外,它将包含在MVC4中.以下是Knockout创建者关于如何将其用于MVC4中的单页应用程序的视频(使用Microsoft的新Web API功能):

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159

但实际上,MVVM允许您使用更少的编码来开发丰富的UI(例如,如果您熟悉Silverlight或WPF MVVM,您就会知道我的意思).

鉴于ViewModel:

var myViewModel = { myValue: 'some text' };
Run Code Online (Sandbox Code Playgroud)

你不需要绑定

$('#textBox').change(function() { myViewModel.myValue = $(this).val(); })
Run Code Online (Sandbox Code Playgroud)

与...相反

$('#textBox').val(myViewModel.myValue)
Run Code Online (Sandbox Code Playgroud)

遍布整个地方,或者在Knockout视图中对计算属性进行特殊代码处理.您可以以非常漂亮的面向对象的方式完成所有这些工作.

<input type="text" data-bind="value: myValue" />
Run Code Online (Sandbox Code Playgroud)

并且所有事件都已连线.