All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
变量的变量,PHP,和,你_php资料_编程技术
网页两侧浮动广告代码_JavaScript技术_编程技术
asp.net2.0站点地图概述
扩展DropDownList控件和ListBox控件(1),-,支持分组功能(optgroup标签)_[Asp.Net教程]
支付宝接口(刚完成,应该是目前最好的了)_.net资料_编程技术
解决SqlTransaction用尽的问题(SQL处理超时)_[SQL,Server教程]
ASP.NET中上传文件到数据库_[Asp.Net教程]
ASP.NET&Spring.NET&NHibernate最佳实践(三)——第2章环境准备_[Asp.Net教程]
谈谈新手如何学习PHP_php资料_编程技术
LINQ体验(17)——LINQ,to,SQL语句之动态查询_[Asp.Net教程]
Reading number is top 10 pictures
PengLiYuan lady for the world health organization fight TB and AIDS goodwill ambassador
China telecom 114 spokesman MeiYanXu2
陪睡门马睿菈自曝写真 称首拍大尺度照片3
各种囧况!玩游戏最不喜欢出现的十件事
Ashlynn Brooke photograph of a group1
Perfect small Laurie2
A resort photographed beautiful young woman change clothes process vomiting blood1
Sora aoi in China3
如果没有好报,为什么要做好人?
再来随便发几张
Download software ranking
双旗镇刀客B
Eclipse 4.2.2 For Win32
C语言教程TXT
株洲本地在线棋牌游戏
仙剑奇侠传98版歌曲
Tram sex maniac 2 (H) rar bag10
Tram sex maniac 2 (H) rar bag1
The hero
C#与.NET技术平台实战演练
jdk1.6 for windows
aaa published in(发表于) 2013/12/17 7:45:18 Edit(编辑)
.Net环境下基于Ajax的MVC方案_.net资料_编程技术

.Net环境下基于Ajax的MVC方案_.net资料_编程技术

.Net环境下基于Ajax的MVC方案_.net资料_编程技术-你的首页-uuhomepage.com







  1、问题背景




  现在,越来越多人开始尝试基于Ajax进行无刷新的Web开发,不过,在.Net环境下,应用Ajax并不是非常方便,这主要可能是由以下一些原因造成的:




  ·由于Ajax基于javascript的本质,使得开发者必须对javascript非常了解,起码,其javascript能力足以实现对callback返回内容对页面的更新,所以开发的门槛就有一定程度的上升




  ·当基于Ajax机制进行开发时,原有的基于postback方式下时,asp.net由后台逻辑代码(Model),aspx页面(View)、aspx.cs(Controller)构成的MVC构架其实失效了,当callback返回数据时,要么在client端用javascript解析返回内容以实现更新,要么则必须在server端构造好比较完整的html代码,再直接由javascript将该构造好的html设置给某个页面对象,很显然,这样一来,要实现一个最简单的callback功能,都要不少代码,并且是相对比较乱的代码,即使在即将到来的asp.net2.0该问题依然不会得到有效解决




  2、本文目的




  本文旨在充分利于现有的asp.net本身的特点和ajax的特性,提出一个用于在asp.net环境下进行基于ajax的web开发的MVC方案,以实现以下主要目的:




  ·Asp.Net环境下用于Ajax的清晰的MVC构架




  ·降低编程人员对过多javascript编码的依赖以降低编程门槛




  ·灵活的支持ajax模式下的常用开发方式




  3、问题分析




  如何实现以上几个主要目的呢?




  1)要对xmlhttprequest对更良好的封装,以使调用方式更简单;




  2)尽量在server端进行更新数据的构造,但是也要避免每次返回数据都手工构造,因此,就想到可以充分使用UserControl,由UserControl作为"View",对应的由ascx.cs文件作为"Controller",这样构成的MVC也是比较清晰的;




  4、问题解决




  基于以上思想,本人实现了以下一个组类库以简化该过程:




  代码简析:




  1)首先在client端,AjaxHelper.js封装了xmlhttprequest,并提供一个将现有的




  序列化为形如param1=v1¶m2=v2&...形式用于post的参数;




  Updater(ajaxTemplate, output, params, onComplete)函数,用于实现一次callback调用




  ajaxTemplate(必选):指定执行需要功能的UserControl路径




  output(可选):填充返回数据的指定标签的引用或ID值




  params(可选):形如param1=v1¶m2=v2&...的post参数




  onComplete(可选):可用于对返回数据进行特殊处理的回调函数,函数格式  function(str),str为返回的数据




  SerializeForm(form)函数,用于序列化




  form:可以是对指定的引用或ID值




  2)在server端,Ajax.aspx文件封装了对由客户端ajaxTemplate指定的UserControl的调用,其余的具体逻辑功能则在特定的UserControl及其ascx.cs内实现;




  3)这样,具体执行一次callback时,编程人员只需在页面引用AjaxHelper.js,并在指定的位置通过javascript:Updater(ajaxTemplate, output, params, onComplete)进行调用,如果需要对某一form进行提交,则可调用javascript:SerializeForm(form)序列化该form并传给params,当然也可以手动构造params,并指定将返回数据通过设置output应用的页面或通过onComplete自定义处理。




  4)由于充分使用UserControl,意味着,可以充分利用asp.net原有的web服务器端控件和数据绑定机制,这样其实,已经很大程度上简化了返回数据的构造,在ascx.cs中,通过Request.Form[ParamName]就能访问到client端传入的params,再访问逻辑代码获取源数据。




  5、范例




  包含在源码中的范例实现了一个简单的无刷新获取博客园首页内容到一个textarea的功能,详见源码!




  部分范例源码:




  Default.aspx















<%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="CN.Teddy.AjaxHelper.WebForm1" %>



WebForm1










loading




























添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.