
Atlas Framework中包含了对AJAX调用的封装,让您可以很方便的在客户端通过JavaScript调用服务器端方法。在本篇文章中,我将解释一下如何使用Atlas调用服务器端Web Service。
使用Atlas,我们只需要如下步骤即可调用服务器端Web Service:
只需以上两步,Atlas会在运行时为您生成相应的mash up,让您可在客户端JavaScript中通过WebServiceClassName.ServiceMethodName()调用该方法。
让我们先来看一个最简单的例子,调用服务器端Web Service得到两个数的和:
首先建立一个Web Service:SimpleWebService.asmx,并在其中添加一个Service Method,不要忘记标记为[WebMethod]哦:
[WebMethod]
public int AddInt(int int1, int int2)

{
return int1 + int2;
}
然后再ASPX页面上的ScriptManager中添加对该Web Service的引用:
<atlas:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<atlas:ServiceReference Path="SimpleWebService.asmx" />
</Services>
</atlas:ScriptManager>
添加点HTML Code,让用户输入两个整数:
Pass simple type to web service - add the two integers:<br />
<input id="int1" type="text" value="1" size="3" />+
<input id="int2" type="text" value="2" size="3" />=
<input id="btnAddInt" type="button" value="?" onclick="return btnAddInt_onclick()" /><br />
<br />
再书写一点JavaScript,当用户点击上面的按钮时,调用Web Method。这里要注意的是JavaScript中调用Web Method的格式:前面两个参数int1,int2分别对应着Web Service声明中的两个参数,后面一个参数onAddIntComplete表示方法成功返回时的Callback方法,也就是所谓AJAX中的A。同时需要注意的是$()方法,等同于document.getElementById()。

function btnAddInt_onclick()
{
var int1 = $('int1').value;
var int2 = $('int2').value;
SimpleWebService.AddInt(int1, int2, onAddIntComplete);
}
function onAddIntComplete(result)
{
$('btnAddInt').value = result;
}