technofantasy

博客园 首页 新随笔 联系 订阅 管理
这个实做是按照微软的Hands-On Lab 1来做的。整个功能是简单的通过客户端调用一个Webservice来实现无刷新的请求
试验分三个步骤

创建一个Atlas项目
创建一个Webservice:HelloworldService,这个Webservice中只有一个方法:Helloworld
创建一个页面(Helloworld.aspx),在这个页面中通过脚本调用Webservice的方法。

在Helloworld.aspx中的代码如下:
<%@ Page Language="VB" MasterPageFile="~/Default.master" Title="Atlas HOL 1" %>
<asp:Content ID="Content3" ContentPlaceHolderID="Main" Runat="Server">
<form action="">
  
<div>
    Search 
for 
    
<input id="SearchKey" type="text" />
    
<input id="SearchButton" type="button" value="Search" 
      onclick
="DoSearch()"/>
  
</div>
</form>
<hr style="width: 300px" />
<div>
<span id="Results"></span>
<script type="text/javascript" src="HelloWorldService.asmx/js">
</script>
<script type="text/javascript">

  
function DoSearch()
  {
    var SrchElem 
= document.getElementById("SearchKey");
    Samples.AspNet.HelloWorldService.HelloWorld(SrchElem.value, 
      OnRequestComplete);
  }

  
function OnRequestComplete(result) 
  {
    var RsltElem 
= document.getElementById("Results");
    RsltElem.innerHTML 
= result;
  }

</script>

</div>

</asp:Content>


上面的代码中比较奇怪的是:
<script type="text/javascript" src="HelloWorldService.asmx/js">
</script>
没有做任何设置,HelloWorldService.asmx/js居然能返回一个客户端的JS脚本,这个脚本里面包含了命名空间和对webservice中方法的调用。
这样通过:
    Samples.AspNet.HelloWorldService.HelloWorld(SrchElem.value,
      OnRequestComplete);

就可以直接调用webservice的方法并且返回值了。我试了一下,在Atlas项目中创建的Webservice项都可以通过:Webservice名称/js  来返回一个
脚本字符串,这个脚本包含了对这个Webservice的命名空间注册以及其中的方法的调用过程。
posted on 2005-11-20 16:46  陈锐  阅读(548)  评论(2)    收藏  举报