JSON.NET、WebService与JQuery协同工作

  最近换了新公司,暂时还没有开发项目,但是我一向都是为未来项目的做准备的有木有??今天主要研究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项目要用,所以自己做了些浅显的研究,没有做个压力测试,没有真正在项目上面使用过,希望各位使用时候要慎重,注意项目风险。

posted @ 2011-09-16 14:28  tf.li  阅读(497)  评论(2编辑  收藏  举报