热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在WEB应用程序上建立WCF

WCF就是web应用服务它提供javascript调用后台代码目前这是我对WCF的认知还有其他的话请回帖告诉我好么~好了正襟危坐撩起袖子开打~新建一个WEB应用程序命名为W

WCF就是web应用服务 它提供Javascript调用后台代码 目前这是我对WCF的认知 还有其他的话 请回帖告诉我好么~ 好了 正襟危坐 撩起袖子 开打~

新建一个WEB应用程序 命名为WATestWCF

然后为项目添加一个AJAX的WCF服务,再项目名字上右键->添加->新建项 选中“启用了AJAX的WCF服务”,如图

 在WEB应用程序上建立WCF - 寂夜风语 - 寂夜风语的博客

将文件名命名为PeopleSource.svc,点击添加,如果弹出一个错误对话框,提示未将对象引用,应该是添加此服务时VS先生成了代码而引用还没来得及给项目添加吧,反正后来运行没有错误,大家就直接忽略掉这个错误就好了。

在添加svc文件后,生成的svc文件如下图

 在WEB应用程序上建立WCF - 寂夜风语 - 寂夜风语的博客

VS会给项目的Web.config里将生成一段配置

 在WEB应用程序上建立WCF - 寂夜风语 - 寂夜风语的博客

这里的配置先不动他,我们先给我们添加的svc文件里添加几个代码,代码如下

    namespace WATestWCF

    {

        [ServiceContract(Namespace = "")]

        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

        public class PeopleSource

        {

            // 添加 [WebGet] 属性以使用 HTTP GET

            [OperationContract]

            [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json,

                RespOnseFormat= WebMessageFormat.Json, UriTemplate = "/DoWork")]

            public UserInfo DoWork()

            {

                return new UserInfo

                {

                    UserID = Guid.NewGuid().ToString(),

                    Name = "1"

                };

            }

 

            [DataContract]

            public class UserInfo

            {

                [DataMember]

                public string UserID { get; set; }

 

                [DataMember]

                public string Name { get; set; }

            }

        }

    }

现在我们改Web.config,将<enableWebScript/>这段换成<webHttp />

到现在服务端的代码已经全部完成了~\( ̄▽ ̄)/

我们现在为项目添加一个jQuery.js(http://docs.jquery.com/Downloading_jQuery#Download_jQuery 这里提供了很多jQuery版本,此实例使用的是jquery-1.2.6)

将JS脚本引用进Default.aspx中,如果要用到传参最好把json2.js(http://www.json.org/json2.js)也下下来引用进去,好~开始写请求了~这是最后一步了~~代码如下:

    <script type="text/Javascript">

        $.ajax({//此格式请参照jQuery帮助文档

            type: "POST", //一定要用POST,所以不用$.ajax方法的话就只能用$.post方法

            url: "PeopleSource.svc/DoWork", //svc文件的路径/svc.cs中的UriTemplate

            dataType: "json",

            success: function(obj) {

                alert(obj.DoWorkResult.UserID);

            }

        });

    script>

好了,运行看看~

接下来介绍两种传参方法

一.基本类型参数,比如string int bool之类的

将svc的DoWork方法将上参数

        public UserInfo DoWork(string name, string id)

        {

            return new UserInfo

            {

                UserID = id,

                Name = name

            };

        }

将Default.aspx中的Javascript代码改成

        $.ajax({

            type: "POST",

            url: "PeopleSource.svc/DoWork",

            contentType: 'application/json', //这个很重要,为什么这么写,我不知 = =!

            dataType: "json",

            data: '{"name":"123456","id":"456"}', //对应DoWork中的参数

            success: function(obj) {

                alert(obj.DoWorkResult.Name);

            }

        });

运行看看~~~

二.传送自己在服务端定义的数据类型

将svc的DoWork方法改成UserInfo类型的参数

        public UserInfo DoWork(UserInfo a)

        {

            return new UserInfo

            {

                UserID = Guid.NewGuid().ToString(),

                Name = a.Name

            };

        }

将Default.aspx中的Javascript代码改成

        var pamar = { a: { UserID: '123456', Name: '456'} }; //a既为DoWork里的a

        $.ajax({

            type: "POST",

            url: "PeopleSource.svc/DoWork",

            contentType: 'application/json',

            dataType: "json",

            data: JSON.stringify(pamar), //要引用json2.js,自己转格式太麻烦了

            success: function(obj) {

                alert(obj.DoWorkResult.Name);

            }

        });

运行看看~~~

好了,本文介绍完毕~O(∩_∩)O~


推荐阅读
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 本文详细介绍了Ionic框架的使用方法及其与Angular的集成。Ionic框架是一个强大的前端开发工具,适用于构建跨平台的移动应用程序。文章将探讨如何引入必要的CSS和JavaScript文件,并解释bundle.js中包含的核心功能,如路由等。 ... [详细]
  • 本文探讨了在 OpenStack 环境中使用虚拟机部署 Ceph 集群后,外部服务器通过浮动 IP 无法访问该集群的问题,并提供了详细的解决方案。 ... [详细]
  • 本文介绍如何将自定义项目设置为Tomcat的默认访问项目,使得通过IP地址访问时直接展示该自定义项目。提供了三种配置方法:修改项目路径、调整配置文件以及使用WAR包部署。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • 本文详细介绍了如何在PHP中使用serialize()和unserialize()函数,以及它们在数据传输和存储中的应用。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • Linux系统中Java程序Too Many Open Files问题的深入解析与解决方案
    本文详细分析了在Linux环境下运行的Java应用程序中可能出现的“Too many open files”异常现象,探讨其成因及解决方法。该问题通常出现在高并发文件访问或大量网络连接场景下,对系统性能和稳定性有较大影响。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
author-avatar
赤木律孑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有