系统环境:Windows Server 2003 + IIS6
开发环境:Visual Web Developer 2005速成版 + ASP.NET AJAX 1.0
使用目的:无刷新调用服务器端的Web Service
实现关键:ScriptManager + ScriptService

安装ASP.NET AJAX1.0后,在VS中建立网站时多了一个选项:ASP.NET AJAX-Enabled Web Site,选择这一个可以创建一个已经配置好使用AJAX的网站(主要是web.config)里的配置,做个最简单的:

1. 新建一个ASP.NET AJAX-Enabled Web Site(HTTP/FTP/文件系统都可以),这时默认的Default.aspx已经包括了对ScriptManager的引用

2. 在项目中添加一个Web Service文件,取名为TestService.asmx,代码如下:

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;   //注意

[WebService(Namespace = "http://www.cnblogs.com/dingxue")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]     //注意
public class TestService : System.Web.Services.WebService {

public TestService () {
    }

[WebMethod]
    public string Merge(string a, string b)
    {
        return a + b;
    }
}

上面带注释的两行是为了使此WEB服务可以被AJAX调用而加的,是必须的。这个WEB服务非常简单,有一个Merge方法,接受两个string类型的参数,并连接这两个字符串后返回。

3. 修改Default.aspx文件中对ScriptManager的定义,以添加对刚才WEB Service的引用,代码如下:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="TestService.asmx" />
    </Services>
</asp:ScriptManager>

asp:ServiceReference实现了对一个Web Service的引用,Path属性指示了Web Service文件的位置

4. 添加测试用的HTML控件,三个文本框,两个用于输入,一个用于显示结果,还有一个按钮是用来执行的,如下:

<input id="txt1" size="5" type="text" /> +
<input id="txt2" size="5" type="text" /> =
<input id="txt3" size="10" type="text" />
<input type="button" value="Merge" onclick="MergeIt()" />

5. 最后实现MergetIt(),用来实现最终调用:

<script type="text/javascript">
    function MergeIt(){
        new TestService().Merge($get("txt1").value,$get("txt2").value,MergeComplete);
    }
    function MergeComplete(result){
        $get("txt3").value = result;
    }
</script>

上面的按钮调用了这里的MergeIt(),这个函数实现了对TestService的调用,利用 new TestService() 来调用Web Service中的Merge方法,参数这里有点要说明的,Web Service中的Merge方法只要两个参数,而这里却是三个,其中前两个和Web Service的参数是一致的,最后一个是另一个JS函数的名称:MergeComplete,这个是用来接受所调用方法的结果的,执行时会自动将WEB Service返回的结果传入MergeComplete,MergeComplete只接受一个参数,这里命名为result。
PS: $get是 document.getElementById的缩写,在ASP.NET AJAX中可以这样写,写起来看起来都比较好一些

6. 现在好了,按下F5吧,如果不出意外的话,应该 可以看到结果了,在前两个文本框输入字符,点下按钮看结果吧

项目来了人就太忙,好久不来,对不住大家了,附上本例源码下载:http://files.cnblogs.com/dingxue/AJAXEnabledWebSite1.rar(2007.8.5)

转载于:https://www.cnblogs.com/dingxue/archive/2007/03/17/678383.html

ASP.NET AJAX1.0尝鲜试用:Web Service调用相关推荐

  1. 国产鸿蒙2.0尝鲜试用

    国产鸿蒙2.0预览分析 鸿蒙开发者官网:developer.harmonyos.com/cn/home 鸿蒙应用开发文档:developer.harmonyos.com/cn/docs/doc- 鸿蒙 ...

  2. 采用HTML5搭建的多个网站尝鲜试用

    采用HTML5搭建的多个网站尝鲜试用 2010-04-06 16:04:57 作者:不详 来源:站长之家 浏览次数:371 网友评论 0 条 HTML5作为HTML标准的下一个版本,包含了很多新特性, ...

  3. Graalvm安装配置与springboot3.0尝鲜

    Graalvm安装配置与springboot3.0尝鲜 Spring 团队一直致力于 Spring 应用程序的原生映像支持已有一段时间了.经过3 +年的孵化春季原生Spring Boot 2 的实验性 ...

  4. ArcGIS API for JavaScript 4.0尝鲜——WebGIS前端开发大杀器

    已经发布的ArcGIS API for JavaScript 4.0有着最前沿的新特性,这是一个更加对于开发者更加友好的Web API.3D的支持让你可以以更加炫酷的方式展示地理数据,而更加简洁明了的 ...

  5. 基于Tomcat5.0和Axis2开发Web Service代码详解

    本文将详细介绍HelloWorld中使用的server和client端代码.阅读之前,你应该首先了解SOAP1.1协议.<?xml:namespace prefix = o ns = " ...

  6. 基于Tomcat5.0和Axis2开发Web Service应用实例

    本文将介绍如何使用Tomcat5.0和Apache Axis2开发.部署及测试一个简单的Web Service应用.<?xml:namespace prefix = o ns = "u ...

  7. 利用SoapHeader验证web service调用的合法性(dwonmoon)

    本文主要通过示例介绍利用SoapHeader验证web service调用的合法性, 一建立Web service项目,新建一个APIService.asmx 其后台代码如下 using System ...

  8. Asp.net MVC2.0系列文章-运行Web MVC2.0 Demo

    安装VS2010 首先安装VS2010,安装过程请参考文章: http://www.cnblogs.com/ywqu/archive/2010/01/27/1657450.html. 创建第一个MVC ...

  9. Mule web service调用中的复杂类型传递

    官网上很辛苦在一个旮旯里找到如何向 Mule暴露的axis web service 传递复杂数据类型 ,http://www.mulesource.org/pages/viewpage.action? ...

最新文章

  1. 数据通信技术_华为数据通信创新峰会在长春圆满举行
  2. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
  3. 启动elasticsearch命令_快速安装ElasticSearch
  4. 苹果原壁纸高清_周易壁纸 | 八卦图阵高清壁纸
  5. Spring Boot 2.x(六):优雅的统一返回值
  6. 分布式精华问答 | 如何实现分布式系统的高可用性?
  7. Oracle 11g系统自动收集统计信息
  8. phpMyAdmin ‘tbl_gis_visualization.php’多个跨站脚本漏洞
  9. 【转载】doxygen+graphviz生成代码文档
  10. python 摄像头录制帧率_实践:用python实现把视频以帧数输出成连续的多图片
  11. 【HDU 1024】【线性DP】Max Sum Plus Plus
  12. java笔试题算法题,吐血整理
  13. 新益华基层医疗系统使用方法_MongoDB for VS Code:使用Mongo的新方法
  14. python下视频的包_Python——爬取包图网图片和视频
  15. MySQL的索引与事务(面试必考) - 细节狂魔
  16. 计算机寻址的最低单元,80c51单片机指令系统的7种寻址方式
  17. java pdf 套打_itext生成发票套打(操作PDF)
  18. 适合零基础学习者的Java学习路线图到底长啥样?一篇文章带你学会Java
  19. C++第8周项目3小贺的工资
  20. 浅析TVS管的分类及选型的注意事项

热门文章

  1. 【Flink】Flink Checkpoint 问题排查实用指南
  2. 【flink】RocksDB介绍以及Flink对RocksDB的支持
  3. 【httpClient】Timeout waiting for connection from pool
  4. 【hortonworks/registries】registries curator LeaderLatch: getChildren() failed. rc = -6 Xid 110
  5. Eclipse如何添加Maven的scala支持
  6. android 4.2版本的sdcard文件目录分析
  7. Git的使用教程(三)
  8. RabbitMQ和Kafka的显著差异(6)
  9. 源码角度,分析@Transactional实现原理
  10. Gitlab+Docker实现持续集成(CI)与持续部署(CD)