方法一:
第一步,建立一个.aspx文件
在查看其源代码里写:即.aspx.cs,主要是使用using System.Web.Services;
关键处:[WebMethod]
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.Services;
- public partial class Default2 : System.Web.UI.Page
- {
- protected void Page_Load(object sender,EventArgs e)
- {
- }
- [WebMethod]
- public static string HandleEvent01()
- {
- //code...
- return "YOUR DATA";
- }
- }
在.aspx文件里写:
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
- <!DOCTYPE html >
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <script type="text/javascript">
- $(function(){
- $.ajax({
- type: "POST",contentType: "application/json",url: "Default2.aspx/HandleEvent01",//调用WebService的地址和方法名称组合 ---- WsURL/方法名
- dataType: 'json',//WebService 返回Json类型 或者 Json/string
- success: function(re) {
- $('#re_method04').html(re.d);
- }
- });
- });
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div id="re_method04">
- </div>
- </form>
- </body>
- </html>
方法二:
建立一个Handler.ashx。类作为后台处理请求:
前台访问:
- <%@ WebHandler Language="C#" Class="Handler" %>
- using System;
- using System.Web;
- public class Handler : IHttpHandler {
- public void ProcessRequest (HttpContext context) {
- Json j = new Json();
- j.Msg = "试验成功了,哈哈哈哈!";
- context.Response.Write(MyJsonConvert.SerializeObjectEx(j));
- }
- public bool IsReusable {
- get {
- return false;
- }
- }
- }
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
- <!DOCTYPE html >
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <script type="text/javascript">
- $(function () {
- $.ajax({
- type: "POST",url: "Handler.ashx/ProcessRequest",//调用WebService的地址和方法名称组合 ---- WsURL/方法名
- dataType: 'json',//WebService 返回Json类型 或者 Json/string
- success: function (re) {
- console.info(re);
- $('#re_method04').html(re.Msg);
- }
- });
- });
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div id="re_method04">
- </div>
- </form>
- </body>
- </html>
序列化JSON使用的是Newtonsoft:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using Newtonsoft.Json;
- /// <summary>
- ///MyJsonConvert
- /// 序列化对象为JSON
- /// </summary>
- public class MyJsonConvert
- {
- public MyJsonConvert()
- {
- }
- public static string SerializeObjectEx(object value)
- {
- Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); //这里使用自定义日期格式,默认是ISO8601格式
- timeConverter.DateTimeFormat = "yyyy-MM-dd"; //设置时间格式
- Newtonsoft.Json.Converters.StringEnumConverter enumConverter = new Newtonsoft.Json.Converters.StringEnumConverter(); //枚举值转换成字符串名字
- JsonSerializerSettings JsonSetting = new JsonSerializerSettings();
- JsonSetting.Converters.Add(timeConverter);
- JsonSetting.Converters.Add(enumConverter);
- JsonConvert.SerializeObject(value,JsonSetting);
- return JsonConvert.SerializeObject(value,JsonSetting);
- }
- }
待序列化的类:
结果: