www.goodsgy.com
现在,我们需要创建一个新的Web服务,由它负责与热点点击相关的数据检索任务。其实,这里所谓的“AJAX服务”,其功能与通常的Web服务是一致的。有关它们之间的细节区别在此不再赘述。现在,你可以右击工程,然后添加一个命名为LocationService.asmx的Web服务。www.goodsgy.com
注意,在本例中我们仅想通过这个Web服务来模拟实战环境中的一种简单逻辑。因此,它仅包含一个Web方法;此方法负责模拟从服务器数据库中取得客户端需要的信息。www.goodsgy.com
在此,为了使这个ASP.NET Web服务能够被从客户端以AJAX方式加以调用,必须把ScriptService属性添加到类声明的前面,如下所示:www.goodsgy.com
以下是引用片段: [ScriptService()] public class LocationService : System.Web.Services.WebService { |
www.goodsgy.com
现在,编写我们的Web方法:www.goodsgy.com
以下是引用片段: [WebMethod] [ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)] public string GetAreaInfo(string area) { return area; } |
www.goodsgy.com
根据权威人士建议,为了安全起见,我们一般要使用HttpPost(或者HttpGet= false)方式访问Web方法。然后,我们把返回的数据格式配置为JSON格式(默认方式即为JSON方式)。www.goodsgy.com
为了简化起见,这里的GetAreaInfo方法仅仅返回输入参数的相同值;但在实际开发中,我们应该在此替换以从数据库中检索数据。www.goodsgy.com
到目前为止,我们已经成功创建从客户端以AJAX方式加以调用的Web服务。www.goodsgy.com
但是,我们还要对页面中的服务器控件ScriptManager进行一些适当的配置,如下所示:www.goodsgy.com
|
以下是引用片段: <asp:ScriptManager ID="ScriptManager1" runat="server"> <services> <asp:servicereference path="~/LocationService.asmx" /> </services> </asp:ScriptManager> www.goodsgy.com |
www.goodsgy.com
在此,我们仅在节点下加入了一个服务参考,但其作用如何呢?www.goodsgy.com
从生成的HTML源码分析,上面的配置将生成如下所示内容:www.goodsgy.com
|
以下是引用片段:www.goodsgy.com
<script src="LocationService.asmx/jsdebug" type="text/javascript"></script>www.goodsgy.com |
www.goodsgy.com
这里的脚本标签引用了一个JavaScript文件LocationService.asmx/jsdebug。其实这是一个Web服务代理类。正是通过此代理类,我们才得以从客户端以异步方式调用服务器端的Web服务。www.goodsgy.com
更有意思的是,如果你简单地复制显示在上面的路径到浏览器中,你将看到一个在运行时刻由AJAX环境生成的JavaScript文件—此文件使脚本服务调用可用。有关代理类,我们不再深入讨论。www.goodsgy.com
下面,我们来看如何创建一个定制的客户端类。www.goodsgy.com
上一页 [1] [2] [3] [4] 下一页