在附录的Ajax框架介绍中发现了这样一句话:“利用Ajax.Net,你可以从JavaScript客户调用.NET方法”。

新建的web项目有个默认的_Default页面,我们为其加上命名空间如MyAjaxNetTest,然后在_Default的HTML第一句也要加上这个名目空间:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="MyAjaxNetTest._Default" %>

然后在PageLoad中注册本页面到AjaxPro中:

        protected void Page_Load(object  sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof (_Default)); 
        }

测试一
    一切已经准备就绪了,我们先进行第一个测试,从客户调用服务端的简单方法。首先在_Default类中添加方法:

         [AjaxPro.AjaxMethod]
        public string  GetServerTime()
        {
            return  DateTime.Now.ToString();
        }

客户现在可以在JS中调用这个方法了,如

       <script type="text/javascript">
       function getTime()
       {         
          alert(MyDemo._Default.GetServerTime().value);          
       }
       </script>

然后你可以加个HTML的button,onclick处理函数设为getTime()。

<input id="Button1" type="button" value="button" onclick="getServerTime()"/>

测试二
    简单方法调用已经OK了,GetServerTime方法返回的是一个简单的string,那么服务端可不可以返回稍微复杂一点的对象了?我们来试试。先新建一个Student类:

     public class  Student
    {
        public string Name = "sky"  ;
        public int     Age = 26 ;
    }

服务端添加GetStudent方法:

        [AjaxPro.AjaxMethod]
        public  Student GetStudent()
        {
            return new  Student();
        }

对应的,客户端添加调用:

       function getStudent()
       {
         var stu =  MyDemo._Default.GetStudent().value ;
         alert(stu.Name + " " +  stu.Age) ;
       }

依照前面的加个HTML按钮测试getStudent函数,答案是,一切照我们预料的进行,客户js可以访问服务端返回的对象。

测试三
    最后看看能够在客户端提交对象给服务器,先在服务端添加方法:

1         private Student student = null ;
2          [AjaxPro.AjaxMethod]
3         public void  SetStudent(Student stu)
4          {
5             this.student =  stu;
6             string name = this .student.Name;
7         }

可以在第六行添加断点,然后当客户端调用时,会进入该断点。

客户端添加调用:

     function putStudent()
       {
            var stu =  MyDemo._Default.GetStudent().value ;
            stu.Name = "chenqi"  ;
            MyDemo._Default.SetStudent(stu) ;
       }

同样,当调用putStudent这个js方法时,服务端进入断点已经表明客户成功的提交了对象,并且对象的Name字段已经改变为“chenqi”了。

测试四
    前面客户设置的都是Student的public字段,那么访问属性如何了?我们将Student定义更改如下:

     public class  Student
    {
        private string name = "sky"  ;
        public int Age = 26 ;

public string  Name
        {
            get
            {
                 return this .name;
            }
            set
            {
                 this.name =  value;
            }
        }
    }

再重复前面的测试,结果我想已经在你的料想中了。

ajaxPro使用例子相关推荐

  1. ajaxpro使用方法以及发布到服务器出现的问题修改方法

    后台方法 [AjaxPro.AjaxNamespace("UserTypeshow")]//自己定义 public partial class UC_BusinessUC_MgtU ...

  2. ASP.NET中的AJAX应用开发详解

    [IT168 技术文档]其实AJAX应用的核心就是XMLHttpRequest,通过现象看本质,即使使用微软的AJAX服务器控件最终也是需要这些的,只不过使用微软AJAX服务器控件开发AJAX应用时我 ...

  3. ASP.NET中的AJAX应用开发总结

    11月21日晚7点应邀在武汉大学信息学院做了一场关于ASP.NET下AJAX开发的报告,以我自己经历讲述了一些特殊应用在过去到现在实现手段的变化,本来想回家之后做个总结的,但是由于最近以来事情一直很多 ...

  4. AjaxPro.Net的例子

    AjaxPro.Net是一个优秀的.net环境下的ajax框架 .net 2.0对应的DLL为AjaxPro.2.dll,这个网上提供下载的地址很多. 一 环境 Windows 2003 VS 200 ...

  5. 一个完整的AjaxPro例子

    一个完整的AjaxPro例子 源码下载 1.配置文件设置: <httpHandlers> <add verb="*" path="*.ashx" ...

  6. AjaxPro.2.dll在VS2005使用中的基本使用

    个人常用的东西收集起来,也给大家一起分享哈.AjaxPro.2.dll在VS2005使用中的基本使用,下面介绍了基本的配置和最简单的使用方法 AJAX不用说大家都明白,不明白的请百度或Google一下 ...

  7. AjaxPro的AJAX示例

    前几天突然发觉项目中的一些功能用AJAX来实现会提升运行速度和稳定性,因此了解了一下AJAX,从网络上找了一个例子,形成了我的一个Project,并且调试通过,现共享给大家,由于对AJAX不怎么了解, ...

  8. AjaxPro 在C#中的应用

    1.这里本人用的是VS2012. 2.新建一个空的Web项目(.NET 4.0) 3.将AjaxPro2.dll复制到网站的bin目录中 4.在项目中引用它 5.打开Web.config,输入红色部分 ...

  9. ajaxpro ajaxMethod Error:

    今天项目开发过程中,偶然发现了ajaxpro报错 This method is either not marked with an AjaxMethod or is not availab 在goog ...

最新文章

  1. 入职一周了,发现自己来了假阿里?
  2. Spring Cloud 2022.0.0 M1 发布:需Java 17、兼容Spring Boot 3
  3. 研究电子计算机的想法,电子计算机发明于哪一年 1946年在美国问世(为研制导弹而生)...
  4. bzoj3589 动态树
  5. Objective-c 字符串的拼接
  6. spring tiles_Spring MVC 3模板和Apache Tiles
  7. 前端学习(3055):vue+element今日头条管理-反馈
  8. pythonopencv测距_python opencv单目测距 小孔成像原理
  9. spring this.logger.isDebugEnabled()
  10. 本机web开发环境的搭建--nginx篇
  11. MPAndroidChart 2.15使用记录
  12. 鸿蒙造化什么意思,大家说鸿蒙造化决,和鸿蒙天地有关系吗
  13. cad打印样式ctb丢失,CAD打印样式表如何设置?CTB和STB有何区别?
  14. AlteraFPGA使用通用SPIFlash
  15. SpringBoot之Hypermedia-Driven RESTful Web Service
  16. 上研动力小课堂丨柴油机启动困难原因大揭秘(上篇)
  17. 梦幻西游代理途径有哪些?需要注意什么
  18. 【视频】老外拍的阿里巴巴纪录片,讲述淘宝怎么打败eBay
  19. Adam,AdamW,LAMB优化器原理与代码
  20. 高校数字化实验室(实训室)综合管理系统

热门文章

  1. linux oracle 查看版本号,Linux系统如何查看版本信息
  2. ECCV22 | ByteTrack:简单、高效、实用的多目标跟踪方法
  3. linux内核中的copy_to_user和copy_from_user(一)
  4. 2019FME博客大赛——基于 FME 求算最佳租房方案
  5. html制作古诗带图画大全,春天的古诗配图画大全
  6. Linux起服务常用命令及实例
  7. Unity循环滚动背景效果制作(uGUI)
  8. 一文读懂低成本的软件对接方式,数据接口生成器应用于医疗软件全解析
  9. teradata是MySQL吗_Teradata 数据库介绍
  10. GD32 CAN波特率计算问题