sen

导航

Ajax 和 WCF 的简单运用

Posted on 2009-12-07 23:22  sen  阅读(303)  评论(0)    收藏  举报

新建立一个web Site ,然后在这个Site中新加一个ajax-enable WCF Service  ,如下图 名为Service

image

建立后在AppCode下面就有一个CS文件 ,另外在根目录下面有一个SVC文件,此文件的指向的后台文件就是AppCode下的CS文件

<%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>

打开CS文件,对代码进行如下修改

using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;

[ServiceContract(Namespace = "MyNameSpace")]//这里定义Class所有命名空间
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
    [OperationContract] //暴露一个方法
    public string  getMessage()
    {
        
        return "WCF服务器返回成功!!";
    }
}

以上对WCF设置部分完成(其实在Web.config新加了配置system.serviceModel空间的配置信息)

下面在ASPX页面调用 :

拉一个ScriptManager ,在里面加一WCF服务的路径,代码如下

  <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services >
            <asp:ServiceReference Path="~/Service.svc" />  指定SVC文件的路径 
        </Services>
   </asp:ScriptManager>

在同一个页面的JS代码如下

<script language="javascript" type="text/javascript">
        function ajaxTest() {
            MyNameSpace.Service.getMessage(onMethodCompleted); //这里有好几个重载了几个方法,分别用来指明成功或失败时的回调函数
        }
        function onMethodCompleted(results) {
        var   inner  = document.getElementById("Show");
        inner.innerText =  results;
        }
    </script>

在aspx页面拉一个客户端按钮 ,指定onclick事件为ajaxTest  这样当点击按钮时, WCF那方法的返回值将显示出来...