ajax 访问wcf服务,如何:创建支持 AJAX 的 WCF 服务和访问该服务的 ASP.NET 客户端...

本文详细介绍了如何使用Visual Studio 2008创建一个具备AJAX支持的WCF服务,以及如何在ASP.NET客户端中调用该服务。步骤包括创建服务、配置客户端和实际操作演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何:创建支持 AJAX 的 WCF 服务和访问该服务的 ASP.NET 客户端

09/12/2008

本文内容

本主题演示如何使用 Visual Studio 2008 创建一个支持 AJAX 的 Windows Communication Foundation (WCF) 服务和一个访问该服务的 ASP.NET 客户端。在“过程”一节中描述了创建服务和客户端的代码的步骤之后,在“示例”一节中提供了相应的代码。

创建 ASP.NET 客户端应用程序

打开 Visual Studio 2008。

在**“文件”菜单中,依次选择“新建”、“项目”、“Web”和“ASP.NET Web 应用程序”**。

将项目命名为 SandwichServices 并单击**“确定”**。

创建 WCF 支持 AJAX 的服务

在**“解决方案资源管理器”中右击 SandwichServices 项目,然后依次选择“添加”、“新建项”和“启用了 AJAX 的 WCF 服务”**。

在**“名称”框中将该服务命名为 CostService,然后单击“添加”**。

打开 CostService.svc.cs 文件。

将 ServiceContractAttribute 的 Namespace 指定为 SandwichService:

namespace SandwichServices

{

[ServiceContract(Namespace = "SandwichServices")]

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

public class CostService

{

}

}

在服务中实现操作。将 OperationContractAttribute 添加到每个操作,以指定这些操作属于协定的一部分。下面的示例实现一个返回给定数量的三明治的费用的方法。

public class CostService

{

[OperationContract]

public double CostOfSandwiches(int quantity)

{

return 1.25 * quantity;

}

// Add more operations here and mark them with [OperationContract]

}

配置客户端以访问服务

打开 Default.aspx 页并选择**“设计”**视图。

从**“视图”菜单中选择“工具箱”**。

展开**“AJAX Extensions”节点,并将“ScriptManager”**拖放到 Default.aspx 页上。

右击**“ScriptManager”并选择“属性”**。

在**“属性”窗口中展开“服务”集合以打开“ServiceReference 集合编辑器”**窗口。

单击**“添加”,指定 CostService.svc 作为引用的“路径”,然后单击“确定”**。

在**“工具箱”中展开“HTML”节点,然后将“Input (Button)”**拖放到 Default.aspx 页上。

右击该按钮并选择**“属性”**。

将**“Value”**字段更改为 Price for 3 Sandwiches。

双击该按钮以访问 Javascript 代码。

在 元素中传入下面的 Javascript 代码。

function Button1_onclick() {

var service = new SandwichServices.CostService();

service.CostOfSandwiches(3, onSuccess, null, null);

}

function onSuccess(result){

alert(result);

}

从客户端访问服务

使用 Ctrl +F5 启动服务和 Web 客户端。单击**“3 份三明治的价格”**按钮以输出一个值,此值应为“3.75”。

示例

本示例包含 WCFService.svc.cs 文件中的服务代码和 Default.aspx 文件中的客户端代码。

//The service code contained in the CostService.svc.cs file.

using System;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Activation;

using System.ServiceModel.Web;

namespace SandwichServices

{

[ServiceContract(Namespace="SandwichServices")]

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

public class CostService

{

// Add [WebGet] attribute to use HTTP GET

[OperationContract]

public double CostOfSandwiches(int quantity)

{

return 1.25 * quantity;

}

// Add more operations here and mark them with [OperationContract]

}

}

//The code for hosting the service is contained in the CostService.svc file.

//The client code contained in the Default.aspx file.

Untitled Page

//

function Button1_onclick() {

var service = new SandwichServices.CostService();

service.CostOfSandwiches(3, onSuccess, null, null);

}

function onSuccess(result){

alert(result);

}

// ]]>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值