1、第一步创建wcf服务的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService1
{
     [ServiceContract(Namespace = "Valsun", Name = "Service1")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class HelloWorldService
    {
        // 要使用 HTTP GET,请添加 [WebGet] 特性。(默认 ResponseFormat 为 WebMessageFormat.Json)
        // 要创建返回 XML 的操作,
        //     请添加 [WebGet(ResponseFormat=WebMessageFormat.Xml)],
        //     并在操作正文中包括以下行:
        //         WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        [OperationContract]
        public string HelloWorld()
        {
            // 在此处添加操作实现
            return "你好好好啊好";
        }

// 在此处添加更多操作并使用 [OperationContract] 标记它们

[OperationContract]
        public Dictionary<string, string> GetTestList(string id)
        {
            // 定义一个字典对象
            Dictionary<string, string> dic = new Dictionary<string, string>();
            // 方便测试,直接构造一些数据来模拟数据库中的数据
            dic.Add("1" + id, "上海");
            dic.Add("2" + id, "北京");
            dic.Add("3" + id, "广州");
            dic.Add("4" + id, "深圳");
            dic.Add("5" + id, "南京");
            // 返回值
            return dic;
        }
    }
}

第二步 创建页面调用方法

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Index</title>
<script src="<%= Url.Content("~/Scripts/jquery-1.4..js") %>"
type="text/javascript"></script> </head>
<body> <form id="form1" runat="server">
<div> <br />
<br />
<input id="btnQueryDictionary" type="button" value="测试" onclick="btnQuery();" />
<br />
<br />
消息: <p id="lblMsg"></p>
</div> <script type="text/javascript">
function btnQuery() { var id = "";
var wcfProxy = new Valsun.Service1();
wcfProxy.GetTestList(id, OnSucceededCallback, OnFailedCallback);
}
function OnSucceededCallback(result, userContext, methodName) {
if (methodName == "GetTestList") {
var msg = "";
// 注意这里的访问方式!!!
for (var key in result) {
msg += result[key].Key + " : " + result[key].Value + "\n";
}
$("#lblMsg").html(msg) ;
}
}
function OnFailedCallback(error, userContext, methodName) {
alert("异常信息:" + error.get_message() + "\n" +
"异常类型:" + error.get_exceptionType() + "\n" +
"堆栈信息:" + error.get_stackTrace());
}
</script>     <asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="http://localhost:2813/HelloWorldService.svc" />
</Services>
</asp:ScriptManager>
</form> </body>
</html>

返回的是字典集合,很简单,我放错的原因是写错了一个单词,这个是用jquery实现的

JavaScript调用wcf服务,并且处理返回的字典集合的更多相关文章

  1. jquery或者JavaScript调用WCF服务的方法

    /****************************************************************** * Copyright (C): 一心堂集团 * CLR版本: ...

  2. 实现在GET请求下调用WCF服务时传递对象(复合类型)参数

    WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...

  3. VS2010中使用Jquery调用Wcf服务读取数据库记录

    VS2010中使用Jquery调用Wcf服务读取数据库记录 开发环境:Window Servere 2008 +SQL SERVE 2008 R2+ IIS7 +VS2010+Jquery1.3.2 ...

  4. 实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法

    关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace Wcf ...

  5. [转]学习 WCF (6)--学习调用WCF服务的各种方法

    转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...

  6. 动态调用WCF服务

    动态调用WCF服务,只需要提供*.svc地址, 1:命名空间: using System.ServiceModel.Channels;using System.ServiceModel; 2:创建访问 ...

  7. Post方式调用wcf服务

    我们平常在PC端调用WCF服务,只要知道WCF服务的地址,客户端直接添加引用服务就可以使用了,殊不知还有其他方式,其实,我们也可以 通过HTTP POST的方式调用WCF服务,这样就不用添加引用了,在 ...

  8. Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务、WCF消息头添加安全验证Token

    原文:Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务.WCF消息头添加安全验证Token 为什么选择wcf?   因为好像wcf和wpf就是哥俩,,, 为什么选择异步 ...

  9. C# 调用WCF服务的两种方法

    项目简介 之前领导布置一个做单点登录的功能给我,实际上就是医院想做一个统一的平台来实现在这个统一的平台登录后不需要在His.Emr.Lis等系统一个个登录,直接可以登录到对应的系统,然后进行相应的操作 ...

随机推荐

  1. 1.5.7、CDH 搭建Hadoop在安装之前(定制安装解决方案---配置单用户模式)

    配置单用户模式 在传统的Cloudera Manager部署中,管理每台主机上的Hadoop进程的Cloudera Manager Agent以root用户身份运行.但是,某些环境会限制对root帐户 ...

  2. python远程操作服务器

    python远程控制 标签(空格分隔): 远程Linux python远程控制:方案: Paramiko Pexpect(主要Linux机器) 安装Paramiko pip install param ...

  3. 解决在linux环境安装setuptools的相关错误

    RuntimeError: Compression requires the (missing) zlib module 缺少zlib包 解决方案     yum install zlib yum i ...

  4. telnet ip/域名 端口 是否成功

    有时候会ping ip 通,但是telnet不通,可能端口未开. telnet不成功,则显示不能打开到主机的链接,链接失败 . telnet成功,则进入telnet页面(全黑的),证明端口可用.

  5. centos7 搭建keepalived+Nginx+tomcat

    准备1台 192.168.2.224  安装Nginx,2台安装tomcat   192.168.2.222   192.168.2.223 1.安装Nginx: 上传pcre-8.36.tar.gz ...

  6. PHP从规定字符中生成固定位数随即串

               }

  7. codeblocks安装(自带gcc编译器)

    下载安装自带c编译器的的codeblocks. 网址:http://www.codeblocks.org/downloads/26 自带gcc编译器的版本 codeblocks-16.01mingw- ...

  8. 【转】 UI自动化测试的关注点

    我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试, ...

  9. 再谈AR中的图像识别算法

    之前在<浅谈移动平台创新玩法>简单的猜测了easyar中使用的图像识别算法,基于图片指纹的哈希算法的图片检索 .后再阿里引商大神的指点下,意识到图片检测只适用于静态图片的识别,只能做AR脱 ...

  10. Codeforces Beta Round #54 (Div. 2)

    Codeforces Beta Round #54 (Div. 2) http://codeforces.com/contest/58 A 找子序列 #include<bits/stdc++.h ...