您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 网站教程 > AJAX教程 >
    .Net环境下基于Ajax的MVC方案(2)
    时间:2017-06-10 10:37 来源: 作者: 浏览:收藏 挑错 推荐 打印

    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的功能,详见源码!
    部分范例源码:
    以下是引用片段:
      <%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="CN.Teddy.AjaxHelper.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
      <HEAD>
         <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
         <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        <script type="text/javascript" language="javascript" src="js/AjaxHelper.js"></script>
      </HEAD>
      <body>
        <form id="Form1" method="post" runat="server">
          <div id="view2">loading</div>
           <script type="text/javascript">
            Updater('AjaxTemplate/GetPageSrc', 'view2', 'url=http://www.cnblogs.com');
          </script>
      </form>
      </body>
    </HTML>

    (责任编辑:12图资源库)