这个实做是按照微软的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的命名空间注册以及其中的方法的调用过程。
试验分三个步骤
创建一个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的命名空间注册以及其中的方法的调用过程。
浙公网安备 33010602011771号