ASP.NET MVC框架的官方CTP版本还没有包括对AJAX的支持。不过,目前有几个示例展示了如何为ASP.NET MVC应用添加AJAX功能。
Nikhil Kothari 提供了一个示例程序和示例代码,它们示范了为ASP.NET MVC框架添加类似ASP.NET AJAX这样的AJAX支持:
AjaxaController是我添加的一个类,它引入了一个新的属性IsAjaxRequest,我能够在Action方法中用它来做一些诸如输出不同视图的事情。它同样引入了另外一些成员,例如RenderPartial方法,它能够使用定义在一个部分视图中而不是一个完整页面中的内容,来生成用户界面的一部分。下面是我提供的新Controller,以及新的Add方法。还有一些额外的改变用加粗来表示了:
|
除了Controller扩展之外,Nikhil还提供了一些扩展方法给视图来使用:
“RenderBeginForm用于生成一个普通的Form标签,RenderBeginAjaxForm生成一个AJAX可用的Form [...],以及RendEndForm方法”。这个示例“简单示范了使用ASP.NET页面中AJAX核心功能——部分刷新,Behaviors和Extender控件——的第一步”。
Kevin Hoffmann在文章“如何为ASP.NET MVC框架提供AJAX功能”提出了他的看法。在一开始他批评Nikhil的示例仅仅示范了如何通过生成HTML来更新Web页面的一小部分。在他看来:
Ajax,在企业应用中,不仅仅是指动态生成一小块div。诚然这的确是一个很重要的的部分,但是大部分人在使用XMLHttpRequest对象来向服务器端的Controller请求数据时,他们希望得到的仅仅是数据,而不是已经生成好的div。在很多情况下,我们需要一个控制器通过不同的Action(诸如REST/POX/Web Services类型的Action)向智能客户端提供各种形式的数据。因此,尽管我在某些场景下会喜欢RenderPartial之类的方法,但是更好的例子应该是通过生成一个视图来输出简单的XML,如果是JSON那就更好不过了。
它对Controller中提供的IsAjaxRequest属性更加担心:
MVC最重要的就是合理的分离关注点。在示例中只有一行代码破坏了这一点,那就是IsAjaxRequest属性。这有点像设法让MVC框架变得和旧有的PostBack世界变得接近,而且坦白地说,旧有的PostBack世界能够解决我的问题。恕我直言,Controller应该只是一个Controller,它不应该,也不能决定应该是生成AJAX还是普通的内容,生成AJAX还是普通的HTML应该由View来决定。Controller的作用应该是为生成一个视图获取正确的数据,然后选择一个试图进行内容生成。
Kevin最后总结到,他希望微软能够提出一个令人信服的理由,来说明为什么开发人员不应该去使用一些其他的AJAX类库,使它们能够让MVC一起工作。
作为那些回应Kevin的人,Chad Myers提供两个方法将其他的AJAX类库和ASP.NET MVC进行集成。在结合使用script.aculo.us与ASP.NET MVC框架一文中,Chad展示了如何在ASP.NET MVC视图中使用script.aculo.us客户端JavaScript + AJAX框架和它的一些控件。script.aculo.us是“一套Web 2.0风格的JavaScript类库,可以帮助Web开发人员轻易为项目添加各种可视化和AJAX的效果”。
第二个方法展示了如何结合使用jQuery和ASP.NET MVC框架。jQuery是“一个快速的,简练的JavaScript类库,能够简化您遍历HTML文档,操作事件,实现动画以及为您的Web页面添加AJAX交互效果”。Chad将Jack Born在实现“原地修改”效果的指南一文中说明的方法移植到了ASP.NET MVC框架中,以此展示jQuery能够如何方便地与新框架进行集成。用Chad的话来说,如果您打算使用ASP.NET MVC框架时,只需要将jQuery示例中那些涉及服务器端部分里的“PHP”或“Ruby”等字样替换成“ASP.NET MVC”就可以了。
专题:http://www.qqread.com/ajax/y390952.html相关专题
- Ajax技术专题 (556篇文章)
- .NET移动与嵌入式技术 (5963篇文章)
- .NET开发手册 (5664篇文章)
- Ajax技术应用开发 (556篇文章)
- ASP.NET教程 (8457篇文章)
- .NET框架架构 (467篇文章)
- JAVA和.Net开发 (106篇文章)
- Ajax框架资源 (36篇文章)
- ASP.NET应用篇 (2638篇文章)
- AJAX应用之注册用户即时检测 (14次浏览)
- AJAX应用之草稿自动保存 (7次浏览)
- 为ASP.NET MVC框架添加AJAX支持 (4次浏览)
- AJAX通用类:AJAXRequest v0.3 (3次浏览)
- AJAX开发简略 (3次浏览)
- ajax的缺点 (3次浏览)
- ajax代理程序自动判断字符编码 (3次浏览)
- AJAX打造博客无刷新搜索 (2次浏览)
- 不用组件实现Ajax效果 (0次浏览)
- XMLHttpRequest对象如何铸就AJAX辉煌 (0次浏览)



