与以前的版本有些不同,重要的是 atlas 1.0 beta 调用的webService 的时候 要在webservice 的开头 加多一个[ScriptService] ,官方文档:http://ajax.asp.net/docs/tutorials/useWebServiceProxy.aspx
整理了一下,大概是两个步骤吧:
一、打开enabled webservice设置。默认情况下 ASP.NET 2.0 AJAX Extensions 不能call webservice的。必须进行配置。
1) 在webservice的开头加 [ScriptService],将其变成 proxy class(这个名词不是很理解,反正就这样叫了
)
[ScriptService]
public
class
SimpleWebService : System.Web.Services.WebService
...
{
[WebMethod]
public string EchoInput(String input)
...{
// Method code goes here.
}
2)配置web.config。(如果新建工程所用的模版是 AJAX-Enabled Web Site 的话,这个设置已经打开了)
< httpHandlers >
< remove verb ="*" path ="*.asmx" />
< add verb ="*" path ="*.asmx"
type ="Microsoft.Web.Script.Services.ScriptHandlerFactory"
validate ="false" />
</ httpHandlers >
< system .web >
3)scriptManager(页面里的)
< services >
< asp:servicereference
path = " ~/WebServices/SimpleWebService.asmx " />
</ services >
</ asp:ScriptManager >
PS:测试你的配置是否成功,在你的URL后面加多“/js” ,即http://localhost/SimpleWebService.asmx/js,你会下载得到一个文件的就证明你成功了。^_^
二、现在你就可以在页面的javascript中使用web service了,如:
// passing the local event handler.
function GetNoReturn()
{
// Samples.AspNet.CallWebService: web服务名称
// GetServerTime : "方法"
Samples.AspNet.CallWebService.GetServerTime();
}
一般的话方法应该还会带有oncomplete动作的。在Atlas June CTP 的版本有一下几个属性:(cat是这样说的)
onMethodComplete: onComplete,
onMethodTimeout: onTimeout,
onMethodError: onError,
onMethodAborted: onAborted,
userContext: context,
timeoutInterval: timeout
注意:可是如果你下载那个所谓的proxy class的话,你会发现只有三个onSuccess,onFailed,userContext,可要注意了喔。官方网站暂时还找不到,可能正在完善中吧,期待ing~~~~~~~~~~~
// passing the local event handler.
function GetNoReturn()
{
// Samples.AspNet.CallWebService: web服务名称
// GetServerTime : "方法"
Samples.AspNet.CallWebService.GetServerTime(OnComplete);
}
//
function OnComplete{
// 调用webservic 成功之后所要的操作
// 比如说 alert("返回成功");
}
所以有时候看程序的时候你会发现web Service没有那些参数,但是调用的时候会多了一些出来就是因为这样了。
本文介绍如何在ASP.NET AJAX Extensions中配置并调用WebService,包括添加[ScriptService]标记、配置web.config文件及使用ScriptManager引用WebService。
260

被折叠的 条评论
为什么被折叠?



