DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> ASP.NET利用JQuery中的Aajax實現JSON數據後台交互
ASP.NET利用JQuery中的Aajax實現JSON數據後台交互
編輯:AJAX詳解     

之前剛接觸JSON上網上搜資料發現都是講到寫出就完了,然後就沒了,我就開始郁悶了,JSON數據如何和前台交互,一下是本人實戰經歷:

     JSON簡單介紹:

     JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式.

  簡單 JSON 示例

  按照最簡單的形式,可以用下面這樣的 JSON 表示名稱 / 值對:

 

  { "firstName": "Brett" }

     本人使用的是Newtonsoft.JSon類庫。

   後台代碼:

 public static class JSonHelper<T, K>
    {
        /// <summary>
        /// 序列化
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public static string JSonWriter(T t)
        {
            return JSonConvert.SerializeObject(t,new IsoDateTimeConverter());
        }
       /// <summary>
        /// 反序列化
       /// </summary>
       /// <param name="serialize"></param>
       /// <returns></returns>
        public static T JSonReader(string serialize)
        {
            return JSonConvert.DeserializeObject<T>(serialize);
        }
        /// <summary>
        /// 將DataTable轉化成JSON格式
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static string JSonDataTable(DataTable dt)
        {
            StringBuilder JSonBuilder = new StringBuilder();
            JSonBuilder.Append("{\"");
            JSonBuilder.Append(dt.TableName.ToString());
            JSonBuilder.Append("\":[");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                JSonBuilder.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    JSonBuilder.Append("\"");
                    JSonBuilder.Append(dt.Columns[j].ColumnName);
                    JSonBuilder.Append("\":\"");
                    JSonBuilder.Append(dt.Rows[i][j].ToString());
                    JSonBuilder.Append("\",");
                }
                jsonBuilder.Remove(JSonBuilder.Length - 1, 1);
                JSonBuilder.Append("},");
            }
            jsonBuilder.Remove(JSonBuilder.Length - 1, 1);
            JSonBuilder.Append("]");
            JSonBuilder.Append("}");
            return JSonBuilder.ToString();
        }
    }

一般應用程序:

 public void ProcessRequest(HttpContext context)
    {
        string get = context.Request.QueryString["p"].ToString();
        if (null != get)
        {
            context.Response.Write(List(int.Parse(get)));
            context.Response.ContentType = "json/json";//設置寫出的是JSON格式文件

        }
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
    private string List(int id)
    {
        C_USER us = new C_USERService().GetById(id);
        string js =JsonHelper<C_USER, int>.JSonWriter(us);
        return JS;
    }   

頁面調用:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.ASPx.cs" Inherits="index" %>

<!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>JSon測試</title>

    <script language="Javascript" type="text/Javascript" src="script/jquery-1.4.2.min.JS"></script>

    <script language="Javascript" type="text/Javascript">
 $(document).ready(function(){
     $.AJax({
        url:"Handler.ashx?p=1",
        //dataType:"JSon",
        type:"GET",
        success:function(JSon)
                {
                 alert(JSon.NAME);                      
                }
     });
 });
</script>

</head>
<body>
    <form id="form1" runat="server">
        </form>
</body>
</Html>

結束:

在學習的過程中問題的一些總結:

1、用Newtonsoft.Json類庫3.5的版本的時候運行出異常System.Runtime..........的異常,問題是安裝的Framework3.5版本是sp1.0的不存在那個方法,建議升級下或者用Newtonsoft.JSon類庫2.0版本

2、當json文件寫出後一直沒發用,解決方法:在一般應用程序裡+  context.Response.ContentType = "json/json";//設置寫出的是JSON格式文件或者在AJax那裡+   dataType:"json",告訴計算機寫出的是JSon格式。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved