JavaScript调用wcf服务,并且处理返回的字典集合

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.1.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 = "1";
        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>
View Code
复制代码

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

posted on   topguntopgun  阅读(372)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示