http://atlas.asp.net/quickstart/atlas/doc/services/default.aspx
翻译的不是很好,还请提出更好的翻译,谢谢
asp.net Atlas容许你的web程序从浏览器(客户端)调用正规的web 服务,这给web程序带来了丰富的用户体验,因为他不需要象传统方法一样需要通过postback把窗体提交给服务器而仅仅是在浏览器和服务器之间传递你所需要的数据。
ASP.NET 'Atlas' 通过浏览器从Web服务中访问JavaScript代理而提供了一种访问和使用Web服务的基本方法。
一,从aspx页面调用简单的web服务
1,在站点里添加个web服务,给里面你想调用的方法加上[WebMethod]特性,因为这样你才可以从外部访问,下面是个简单的web服务:
System; System.Web; System.Collections; System.Web.Services; System.Web.Services.Protocols; Quickstart.Samples { [WebService(Namespace = "http: [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] SimpleService : System.Web.Services.WebService { [WebMethod] EchoString( s) { s; } } }2,在你的web 页面添加下列的atlas:Script以便在页面里激活asp.net Atlas,当你的页面被请求的时候他们会被下载。
<atlas:Script ID="Script1" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Mozilla" />
<atlas:Script ID="Script2" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Firefox" />
<atlas:Script ID="Script3" runat="server" Path="~/ScriptLibrary/AtlasRuntime.js"/>
3,在web页面添加一个javascript语句用他的src属性指向web 服务,当你的页面被请求的时候.asmx/js 条目将下载javascript代理:
<script language="JavaScript" src="SimpleService.asmx/js">
4,现在你可以从你的页面中调用web 服务中的方法了,他是基于事件驱动的,他有三个参数,第一个是web服务中的方法所需要的参数,第二个参数是数据成功返回所激发的操作(函数),第三个参数是返回数据超时所激发的操作(函数):
Quickstart.Samples.SimpleService.EchoString(
"SomeText", //params
OnComplete, //Complete event
OnTimeout //Timeout event
);
5,你甚至可以直接传递html input控件的值给web 服务中的方法
Quickstart.Samples.SimpleService.EchoString(
document.getElementById('inputName').value, //params
OnComplete, //Complete event
OnTimeout //Timeout event
);
6,在成功获得数据的操作函数中,有个result参数,这个就是调用web服务方法而返回的数据,如果响应超时,将激发OnTimeOut操作;
function OnComplete(result)
{
alert(result);
}
function OnTimeout(result)
{
alert("Timed out");
}
好了,下面是aspx页面的代码:
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" xmlns="http://www.w3.org/1999/xhtml" Simple Service ID="Script1" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Mozilla" ID="Script2" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Firefox" ID="Script3" runat="server" Path="~/ScriptLibrary/AtlasRuntime.js" type="text/javascript" language="JavaScript" src="SimpleService.asmx/js" Enter your name: id="inputName" id="buttonGo" οnclick="return OnbuttonGo_click()"GO type="text/javascript" language="JavaScript" function OnbuttonGo_click() { //Call script proxy passing the input element data requestSimpleService = Quickstart.Samples.SimpleService.EchoString( document.getElementById('inputName').value, //params OnComplete, //Complete event OnTimeout //Timeout event ); return false; } function OnComplete(result) { alert(result); } function OnTimeout(result) { alert("Timed out"); }