惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
小众软件
小众软件
D
Docker
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
博客园 - 叶小钗
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
IT之家
IT之家
博客园 - 司徒正美
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog

博客园 - tf.li

清理MVC4 Internaet 项目模板清理 SQL2014 尝试读取或写入受保护的内存。这通常指示其他内存已损坏 nodejs 环境配置技巧 mongdb window 服务安装批处理 bower 安装后 jade 引用404问题 我的Prototype模式框架 转自CnBeta 令人深思 [译稿]为什么我们不要 .NET 程序员 我修改的IP地址掩码 呵呵~~开心 Ext.Ajax.request 传值问题 从小做大之一---------一切从建模开始 [求助]关于文本行转列的疑问~~ To Terrylee 我的设计模型之小议工厂模式 我的设计模型之装饰者模式 我对线程池的一点理解 面向接口编程之惑 第二版 面向接口编程之惑 我的设计模型之适配器模式 我的设计模型之简单工厂
JSON.NET、WebService与JQuery协同工作
tf.li · 2011-09-16 · via 博客园 - tf.li

  最近换了新公司,暂时还没有开发项目,但是我一向都是为未来项目的做准备的有木有??今天主要研究WebService,与JQuery,还有JSON.NET这三样利器,看到网上JSON.NET的文章不多,所以想发上来大家看看,自己记录一下,不多废话,开始我们的旅程。

  首先下载JSON.NET Codeplex http://json.codeplex.com/

  下载后解压,找到Bin文件夹 ,里面有各种的版本,貌似支持WindowPhone的版本。我们这里选用的2.0的版本

在项目中添加dll的引用:

JSON.NET引用完毕后,开始我们今天的工作.

直接引用新建Web应用程序中的Default.apx,备注:添加JavaScript应用,需要JQuery 1.6.4

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %><!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></title>
<script type="text/javascript" src="JScript/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
var Handler = function() {
$.ajax({
type:
"post",
datatype:
"JSON",
data:
"{Name:'Edison',Pass:'123'}",
contentType:
"application/json;charset=utf-8",
url:
"ServiceOne.asmx/HelloWorld",
success:
function(data) {
debugger;
var result = $.parseJSON(data.d);
var StrResult=String('');
for (var i = 0; i < result.length; i++) {
StrResult
+= "姓名:" + result[i].Name + ",密码:" + result[i].Pass + "<br>";
}
$(
'#div2').html(StrResult);
},
error:
function(e) {
debugger;
alert(e);
}
});
};
$(document).ready(
function() {
$(
"#div1").bind('click', Handler);
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="div1">
123
</div>
<div id="div2">
456
</div></form>
</body>
</html>

前台页面完成了,后台代码怎么样写呢??

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using Newtonsoft.Json;namespace WebApplication1
{
/// <summary>
/// ServiceOne 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo
= WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(
false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class ServiceOne : WebService
{

[WebMethod(EnableSession

= true)]
public String HelloWorld(String Name,String Pass)
{
List
<TomoUser> tomoUsers=new List<TomoUser>();
TomoUser user
=new TomoUser();
user.Name
= Name;
user.Pass
= Pass;
TomoUser user2
= new TomoUser();
user2.Name
= Name + "1";
user2.Pass
= Pass + "1";
tomoUsers.Add(user);
tomoUsers.Add(user2);
String s
= JsonConvert.SerializeObject(tomoUsers,Formatting.Indented);
return s;
}
}
}

到此处我们的JSON.NET与JQuery已经可以正常协同工作了,还是比较给力的.

这样做有几个有点:

1.ASMX可以根据方法区分开所获取的数据,不需要建立那么多.ashx文件.

2.JSON格式确实比较犀利(之前我总是做WinForm 今天算重回Web领域,发现还是Web好啊!!!)

备注:以上文章是我个人的总结,希望不要被喷,如果有更好的方式或者方法,可以告诉我咱们一些研究下,因为马上Web项目要用,所以自己做了些浅显的研究,没有做个压力测试,没有真正在项目上面使用过,希望各位使用时候要慎重,注意项目风险。