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