快速业务通道

UpdatePanel for ASP.NET MVC的尝试

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
UpdatePanel时,如果需要使用JavaScript提交一个 AJAX更新,还需要借助不登大雅之堂的trick。

也正因为如此,Nikhil提 出的解决方案非常不错,它能够和前台开发人员的自定义逻辑进行灵活地结合。 此外,通过阅读ASP.NET MVC框架0416 Build的代码,我发现在新版本的ASP.NET MVC中似乎将会内置这种AJAX解决方案了——不过这也的确符合微软的 一贯做法,不是吗?:)

这个AJAX解决方案原型的使用方式和工作原理已经 描述完了,如果您对其具体实现感兴趣,或者想亲自尝试一下,可以下载文章末 尾的附件。附件中的解决方案包含三个项目,MvcAjax为提供MvcAjaxPanel的项目 ,而MvcWebApp是一个普通的ASP.NET MVC示例程序,而MvcAjaxWebApp自然就是添 加AJAX效果之后的结果了。在示例中,我还在Master Page中定义的菜单(即页面 左侧的菜单)里显示了一块当前时间,这是为了体现MvcAjaxPanel的“一次 提交,多处更新”的特点。

不过需要强调的是,这仅仅是个原型。 或者说这只是一种实现上尝试,在很多细节方面并没有作太多追求。如果要成为 一个完善的AJAX解决方案,还需要作大量的改进。例如:

提供一些客户端 的hook供前台开发人员使用(如提交前、接受后、或者处理一个提交还没有返回 ,客户端就发起另一个请求的情况等等)。

更强大的功能,更好的开发体 验(如客户端触发机制)

异常处理

支持脚本

支持跳转 (Redirection)

...

此外,作为面向ASP.NET MVC特有的AJAX解决 方案,也有一些额外的问题需要考虑。最典型的问题之一就是在使用ASP.NET MVC 时很少使用模板控件,而更多的使用页面中的循环,那么如何让MvcAjaxPanel在 循环内容生效?我也产生过一些想法,但是如果要真正确定下来最终的实现方式 ,很多东西还需要进一步思考。如果您对于这个AJAX解决方案有什么建议或其他 任何想法,也请尽快告诉我。

最后再说一件有趣的事情:在我实现了这个 原型之后的某一天,忽然意识到这个控件似乎不光可以为ASP.NET MVC使用,也能 够用于普通的WebForms应用程序。这真是一个令人意外的发现。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号