企业级Web应用的一个特点是以“数据处理”为主,所以“面向绑定”的Knockout.js 是一个不错的选择。...一、一个简单的基于CRUD的Web应用 在《通过ASP.NET Web API + JQuery创建一个简单的Web应用》中,我采用jQuery + ASP.NET Web API构建了一个单纯的对单一数据进行...public string PhoneNo { get; set; } 44: public string EmailAddress { get; set; } 45: } 和ASP.NET...三、通过jQuery进行Ajax调用,利用Knockout.js进行数据绑定 我们通过ASP.NET MVC来构建Web应用,默认的HomeController定义如下,默认的Index操作仅仅是将默认的...我们采用jQuery进行Ajax调用ApiController进行联系人的获取、添加、修改和删除,数据和命令(添加、修改和删除)的绑定是通过Knockout.js来完成的。 1: <!
1、Knockout.js是什么?...Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的用户界面。...II、其他优点: 纯JavaScript库-兼容任何服务器和客户端技术。 可以很好的应用到已有的应用程序中-而不需要程序主要架构发生变化。 简洁-采用Gzip压缩之后只要13K。...开发人员如果熟悉Ruby on Rails,Asp.net MVC 或其它MVC技术可能会发现它是一个带有声明式语法的MVC实时form。...4、KO与Jquery KO和Jquery(prototype等)是相互竞争还是可以兼容一起使用? 每个人都很喜欢Jquery!
前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下。...然后刚刚发现在建立asp.net mvc4.0的应用程序的时候,建完之后我直接在项目的Scripts中看到了 ? 这两个js类库,用谷歌翻译看了下官网,Ko的实现原理是MVVM,比MVC高级一些。...MVVM的优点 MVVM已在微软WPF/Silverlight/WP7中广泛应用,和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点 1. 低耦合。...开始使用Knockout.js 如果你建立像asp.net mvc 4.0这样的Web应用程序,那么你可以不用任何操作即可以使用Knockout.js,如果你建立其他的项目或许需要引用该类库。...然后我现在建立的是asp.net mvc4.0应用,然后运行后,输入文本数据,移开鼠标,即可看到span中的文本也跟随发生变化。
数组也被转换成了observable数组,如果服务器更新改变了数组的个数,mapping插件也会添加或者删除相应的item项,也会尽量保持和原生JavaScript数组相同的order顺序。...使用.from/toJSON函数处理JSON字符串和使用.from/toJS函数处理JS对象是等价的。
DotNetNuke 7.0 正式版发布了,DotNetNuke(简称DNN)是一个免费的、开源的、可扩展的内容管理系统,是建立在 ASP.NET 平台上的Web应用框架。...ASP.NET Razor也为动态扩展开发做了优化,能够以流畅、有表现力的方式组合代码和内容。...它所包含的jQuery、jQueryUI和Knockout.js库使得开发者能够更容易地调用Web服务,创建现代的、交互式的客户端应用程序。 DotNetNuke是一个非常经济实惠的产品。...你还可以参考Wrox、Apress和Packt Publishing等出版商出版的图书。
大部分是用在button,input和连接a上,但是可以在任意元素上使用。...param1', 'param2') }"> Click me 这样,KO就会调用这个匿名函数,里面会执行viewModel.myFunction(),并且传进了'param1' 和'...例如,如果你的元素和父元素都绑定了click事件,那当你点击该元素的时候两个事件都会触发的。如果需要,你可以通过额外的绑定clickBubble来禁止冒泡。
不过,如果你让用户选择的是一个JavaScript对象数组(不仅仅是string),那就需要设置optionsText和optionsValue这两个参数了。...optionsValue 和optionsText类似, 你也可以通过额外参数optionsValue来声明对象的那个属性值作为该的value值。...或者其它的unique标示符,否则的话KO找不知道之前选择的car是新options里的哪一项 selectedOptions 对于multi-select列表,你可以用selectedOptions读取和设置多个选择项
主要是用在表单控件,和上。 当用户编辑表单控件的时候, view model对应的属性值会自动更新。...绑定下拉菜单drop-down list(例如SELECT) Knockout对下拉菜单drop-down list绑定有一个特殊的支持,那就是在读取和写入绑定的时候,这个值可以是任意JavaScript...更新observable和non-observable属性值 如果你用value绑定将你的表单元素和你的observable属性关联起来,KO设置的2-way的双向绑定,任何一方改变都会更新另外一方的值
; ko.applyBindings(viewModel); KO将参数值会设置在元素的innerText (IE)或textContent(Firefox和其它相似浏览器...现在,text文本将在“expensive”和“affordable”之间替换,取决于价格怎么改变。...如果你想编写如下的代码的话,那Knockout将不起任何作用: 导航 1.KnockoutJs官网学习(简单了解和入门) 2.Knockout.Js官网学习(监控属性Observables) 3
注:对text box,drop-down list和所有non-checkable的form表单控件,用value绑定来读取和写入是该元素的值,而不是checked绑定。...也就是说非0值和非null对象,非空字符串将被解析成true,其它值都被解析成false。
前言 如果你要探测和响应一个对象的变化,你应该用observables。 如果你需要探测和响应一个集合对象的变化,你应该用observableArray 。 ...在很多场景下,它都非常有用,比如你要在UI上需要显示/编辑的一个列表数据集合,然后对集合进行添加和删除。...(例如indexOf不能在IE8和早期版本上使用,但KO自己的indexOf 可以在所有浏览器上使用) B:在数组操作函数方面(例如push和splice),KO自己的方式可以自动触发依赖跟踪,并且通知所有的订阅者它的变化...5.IndexOf和slice indexOf 函数返回的是第一个等于你参数数组项的索引。...-1 : 1); }); myObservableArray.splice() 删除指定开始索引和指定数目的数组对象元素。
导航 1.KnockoutJs官网学习(简单了解和入门) 2.Knockout.Js官网学习(监控属性Observables) 3.Knockout.Js官网学习(数组observable)
用户体验变得更加的连续和流畅,同时网络延时带来的影响也很容易忽略。 第二点: 有一下技术方法可以用来,发送请求给服务器。...当然API或者web service可以接收参数的传递 ASP.NET Web API技术和Web Service技术,升级版的WCF技术。...来处理实际的URL地址和浏览器历史记录问题。...Knockout.js : A JavaScript library that helps provide two way data binding fro web apps, inlcuding SPAs...GWT技术: 客户端和服务器类库介绍 Derby和Exo 开发工具: Omnis Studio.
例如:继续在上面的ViewModel中添加两个属性 firstName和lastName var myViewModel = { personName: ko.observable...} }, owner: viewModel }); 这个例子里,写操作的callback接受写入的值,把值分离出来,分别写入到“firstName”和“...比如,你存储价格为float类型,但是允许用户编辑的字段需要支持货币单位和小数点。...price: 所以,不管用户什么时候输入新价格,输入什么格式,text box里会自动更新为带有2位小数点和货币符号的数值...导航 1.KnockoutJs官网学习(简单了解和入门)
带有几个额外的函数来处理带有keys的mapping: mappedRemove mappedRemoveAll mappedDestroy mappedDestroyAll mappedIndexOf 它们是和ko.observableArray...mappedCreate函数: var newItem = result.mappedCreate({ id: 3 }); 首先会检查key(id=3)在数组里是否存在(如果存在则抛出异常),然后,如果有create和
SignalR是一个继承的客户端与服务器库,基于浏览器的客户端和基于ASP.NET的服务器组件可以借助它来进行双向多步对话,换句话说,该对话可不受限制的进行单个无状态请求/响应数据交换;它将继续,直到明确关闭...对话通过永久连接进行,允许客户端和服务器发送多个消息,并允许服务器做出相应答复,值得注意的是,还允许服务器向服务端发送异步消息,它和Ajax类似,都是基于现有的技术。本身时一个复合体。...它的目标整个.NET Framework平台,它也不限Hosting的应用程序,而且还是跨平台的开源项目,支持Mono2.10+,觉得它变成时Web API的另一种实作选择,但是它在服务端处理联机的功能上比ASP.NET...,更重要的是,它可以在Web Form使用 SignalR内的客户端库(.NET/JS)提供了自动管理的能力,开发人员只需要直接使用SignalR的Client Library即可,同时它的JS库和JQuery...完美整个,因此能直接与像JQuery或Knockout.js一起使用 SignalR内部两类对象: 1.Persistent Connection(HTTP持久链接):持久性连接,用来解决长时间连接的能力
我们都知道,在foreach binding中,使用$index可以得到基于0的索引序号,但在列表显示中,我们更希望这个索引是从1开始的,怎么处理呢?
如果你不确信是否安全(比如显示用户输入的内容),那你应该使用text绑定,因为这个绑定只是设置元素的text 值innerText和textContent。
view model就可以探测到你从数组对象里选择的项了,而不必关注每个项和页面上展示的option项是如何map的。
我觉得这个问题涉及到IIS和ASP.NETASP.NET Runtime的处理模型的问题,并不是三言两语就能说清楚的,所以决定写这样一篇介绍IIS和ASP.NET Runtime Process Model...第二部分将着重介绍在一个托管的ASP.NET Runtime 环境对传入的Http request的处理过程。我们先来看看IIS 5.x和IIS 6的处理过程。 1....一、IIS 5.x based Process Model IIS 5.x一个显著的特征就是Web Server和真正的ASP.NET Application的分离。...ASP.NET ISAPI和Worker Process之间的通信通过他们之间的一组Pipe实现。...Process Model [原创]ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI [原创]ASP.NET Process Model之二:ASP.NET