调用WCF返回Josn的两种方式
开始之前先定义个泛型类和数据对象类型
[DataContract]
public class Product
{
[DataMember]
public int ProductID;
[DataMember]
public string Name;
[DataMember]
public string ProductNumber;
}
[DataContract]
public class PageData<T>
{
[DataMember]
public int TotolRecord
{
get;
set;
}
[DataMember]
public T Data
{
get;
set;
}
}
方法一:
参考:
http://www.cnblogs.com/iamv/archive/2008/10/31/1323821.html
http://www.cnblogs.com/jillzhang/archive/2008/06/13/1219201.html
新建Ajax-enabled WCF Service
名字为ProductService.svc
WCF代码
Code
using System;
using System.IO;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Data.SqlClient;
using System.Runtime.Serialization.Json;
using System.ServiceModel.Web;
namespace Josn_WCF
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ProductService
{
[OperationContract]
public string GetProductDetailsByProductID(int productID)
{
//随便定义一个返回的对象
Product prod = new Product();
int i = productID;
prod.ProductID = i;
prod.Name = i.ToString() + "_V";
prod.ProductNumber = i.ToString() + "007";
MemoryStream stream = new MemoryStream();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Product));
serializer.WriteObject(stream, prod);
stream.Position = 0;
StreamReader streamReader = new StreamReader(stream);
return streamReader.ReadToEnd();
}
}
}
UI调用WCF代码
新建一个aspx页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JSON_WCF.aspx.cs" Inherits="Josn_WCF.JSON_WCF" %>
<!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 id="Head1" runat="server">
<title>Invoking the Product Service through the AJAX based Client</title>
<script type="text/javascript">
function pageLoad() {
}
function OnGetClick() {
ProductService.GetProductDetailsByProductID($get("txtProductID").value,OnGetComplete, OnError);
}
function OnGetComplete(result){
var prod = eval("(" + result + ")");
$get("spnProductID").innerText = prod.ProductID;
$get("spnProductName").innerText = prod.Name;
$get("spnProductNumber").innerText = prod.ProductNumber;
}
function OnError(errorMessage) {
alert(errorMessage.get_message());
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
Enter Product ID:
<input type="text" id="txtProductID" name="txtProductID" />
<input type="button" value="Get Product Details" id="btnInvokeWebService" onclick="OnGetClick()" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/ProductService.svc" />
</Services>
</asp:ScriptManager>
<br />
<br />
Product ID : <span id="spnProductID"></span>
<br />
<br />
Name :<span id="spnProductName"></span>
<br />
<br />
Product Number :<span id="spnProductNumber"></span>
<br />
<br />
</div>
</form>
</body>
</html>
主要是注意其中的JavaScript代码和ScriptManager
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/ProductService.svc" />
</Services>
</asp:ScriptManager>
转载于:https://www.cnblogs.com/iamv/archive/2008/11/06/1327941.html
调用WCF返回Josn的两种方式相关推荐
- Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码
Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo
- 获取Executor提交的并发执行的任务返回结果的两种方式/ExecutorCompletionService使用...
当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直 ...
- java native函数库_Java 层调用 Native 层函数的两种方式
概述 Java 层如何调用Native层函数,大家都应该知道使用JNI(Java 本地接口). 通过在java层声明native方法,然后遵守JNI规范命名Native函数,即可建立Java层nati ...
- SpringMVC 返回json的两种方式
前后台数据交互使用json是一种很重要的方式.本文主要探讨SpringMVC框架使用json传输的技术. 请注意,本文所提到的项目使用Spring 版本是4.1.7,其他版本在具体使用上可能有不一样的 ...
- C语言调用so动态库的两种方式
方式1:类似静态库的调用(使用头文件) 这种方式生成的程序会在启动时候就加载so动态库. add.h int add(int x, int y); add.c #include "add.h ...
- Android 调用系统api录音的两种方式(MediaRecorder、AudioRecord)
废话 权限.权限.权限,必须要先获取了录音权限,其他的事情晚点再说. 另外,新版本的Android 10系统会对录音有调整,引入了一个录音焦点的概念,也就是说以前的麦克风只能一个APP使用,必须要等它 ...
- web Api 返回json 的两种方式
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
- webapi输出炜json_web Api 返回json 的两种方式
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
- java调用wcf控件的两种交互
1.axis方式 package wsdl.axis; import java.net.MalformedURLException; import java.rmi.RemoteException; ...
最新文章
- InnoDB和MyISAM区别
- 如何在组件模板中选择元素?
- 【小技巧积累】设置ListView控件的Item不在Tab键导航序列中
- networkX如何读取存储图的二进制.dat文件
- TJOI2018Party
- matlab习题二,matlab习题二答案.doc
- 打坐是开发潜能的快速方法
- 基于51单片机及DS18B20温度传感器数码管显示程序
- 逆向工程核心原理 小结
- 敞开心扉,一起聊聊Java多线程
- ESP8266-Arduino编程实例-OLED显示DHT22传感器数据
- maxEms和maxLength的区别以及maxEms不起作用的问题
- MySQL的TIMESTAMP数据类型
- 助力精准气象和海洋预测笔记
- QoS服务质量六路由器拥塞管理
- (免费分享)基于Springboot的个人健康监控管理系统 毕业论文+项目源码
- 网易云音乐的三点借鉴:功能、设计、运营
- Path绘制动态的贝塞尔曲线、PathMeasure来绘制path动画
- laravel中汉字转拼音包
- C++最佳实践 | 工具