启用了AJAX的WCF服务

  刚才在百度百科里找了一下WCF:Windows Communication Foundation (WCF) 是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入,与 Windows Presentation Foundation 及 Windows Workflow Foundation 并行为新一代 Windows 操作系统以及 WinFX 的三个重大应用程序开发类库。

  它就是微软开发的一组数据通信的接口。其中wcf也实现了Ajax的服务。用它,我就可以简化Ajax开发了。之前我写Ajax服务,都是需要建一个ashx处理程序页面,要序列化数据,在前台还需要反序列化数据等,比较费事。

  接下来看看如何运用它:在一个web项目中,新建-->添加新项-->启用了AJA的XWCF服务。添加一个后缀名为svc的处理页面,大概内容如下:

PesrsonService.svc
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode
= AspNetCompatibilityRequirementsMode.Allowed)]
public class PersonService
{
// 添加 [WebGet] 属性以使用 HTTP GET
[OperationContract]
public void DoWork()//这个是自动生成的示例
{
// 在此处添加操作实现
return;
}
[OperationContract]
//标记了OperationContract的方法就可以在Ajax中调用
public Person GetPerson()
{
return new Person(){Name="杨凤辉",Age=22};
}
}
public class Person
{
public string Name { set; get; }
public int Age { set; get; }
}

  在aspx页面,页首添加一个ScriptManager控件,然后设置一下“service集合”属性,添加一个service,路径path为刚才定义的svc页面:

      <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/PersonService.svc" />
            </Services>
        </asp:ScriptManager>

如此,我就可以在该页面的Javascript代码中调用PessonService.svc中定义的方法。

<script language="javascript" type="text/javascript">
function Button1_onclick() {
PersonService.GetPerson(
function(data){alert(data.Name);},
function(){alert("失败");});
}
</script>
吃午饭了, 
接下来就可以在普通的aspx中,通过AJAX的方式调用上面定义的方法了,数据完全可以从数据库中读取,为了方便演示,写了一个person类。
posted @ 2011-05-06 11:37  GY小小鸟  阅读(1185)  评论(3编辑  收藏  举报