• 020-Json结构数据序列化异步传递


    C#中将.Net对象序列化为Json字符串的方法:

    JavaScriptSerializer().Serialize(p),
    JavaScriptSerializer在System.Web.Extensions.dll中,
    是.Net3.x 中新增的类。
    完整:System.Web.Script.Serialization.JavaScriptSerializer

    FormTest.html

     1 <!DOCTYPE html>
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <title></title>
     6     <script src="js/jquery-1.7.1.min.js"></script>
     7     <script>
     8         $(function () {
     9             $('#btnAdd').click(function () {
    10                 //$.post('FormTest.ashx',
    11                 //    //'title=' + $('#title').val()+'&content='+$('#content').val(),
    12                 //    //$('#form1').serialize(),//返回由name与value构成的键值对字符串
    13                 //    $('#form1').serializeArray(),//由name与value构成的json对象的数组
    14                 //    function(msg) {
    15                 //        $('#showDiv').html(msg);
    16                 //    }
    17                 //);
    18 
    19                 //$.getJSON(
    20                 //    'FormTest.ashx',
    21                 //    $('#form1').serialize(),
    22                 //    function (data) {//{Title:***,Content:***}
    23                 //        //{"Title":"xlb","Content":"yg"}
    24                 //        $('#showDiv').html('title:'+data.Title+'<br>content:'+data.Content);
    25                 //    }
    26                 //);
    27 
    28                 $.getJSON(
    29                     'FormTest.ashx',
    30                     $('#form1').serializeArray(),
    31                     function (data) {//[{},{},{}....{}]
    32                         var list = $('#showDiv table');
    33                         $.each(data, function (index, item) {
    34                             list.append('<tr>' +
    35                                 '<td>' + item.Title + '</td>' +
    36                                 '<td>' + item.Content + '</td>' +
    37                                 '</tr>');
    38                         });
    39                     }
    40                 );
    41             });
    42         });
    43     </script>
    44 
    45 </head>
    46 <body>
    47     <form id="form1">
    48         <input type="text" id="title" name="title" />
    49         <br />
    50         <input type="text" id="content" name="content" />
    51         <br />
    52         <input type="button" id="btnAdd" value="添加" />
    53     </form>
    54     <div id="showDiv">
    55         <table border="1"></table>
    56     </div>
    57 </body>
    58 </html>

    FormTest.ashx

     1     public class FormTest : IHttpHandler
     2     {
     3 
     4         public void ProcessRequest(HttpContext context)
     5         {
     6             context.Response.ContentType = "text/plain";
     7 
     8             string title = context.Request["title"];
     9             string content = context.Request["content"];
    10 
    11             //context.Response.Write(title+"-"+content);
    12 
    13             #region 返回单一对象
    14             //Result result=new Result();
    15             //result.Title = title;
    16             //result.Content = content;
    17 
    18             //JavaScriptSerializer js=new JavaScriptSerializer();
    19             //string result1 = js.Serialize(result);
    20             //context.Response.Write(result1); 
    21             #endregion
    22 
    23             #region 返回数组
    24             List<Result> list = new List<Result>();
    25             for (int i = 0; i < 10; i++)
    26             {
    27                 list.Add(new Result()
    28                 {
    29                     Title = title + i,
    30                     Content = content + i
    31                 });
    32             }
    33 
    34             JavaScriptSerializer js = new JavaScriptSerializer();
    35             string result = js.Serialize(list);
    36             context.Response.Write(result);
    37             #endregion
    38         }
    39 
    40         public bool IsReusable
    41         {
    42             get
    43             {
    44                 return false;
    45             }
    46         }
    47     }
    48 
    49     public class Result
    50     {
    51         public string Title { get; set; }
    52         public string Content { get; set; }
    53     }
  • 相关阅读:
    解决Firefox下outerHTML不支持问题
    神奇的css属性pointerevents
    IE6 double marginleft Bug
    解决IE低版本不支持call和apply问题
    JavaScript函数参数的可修改性
    IE6/7 double paddingbottom Bug
    各浏览器对document.getElementById等方法的实现差异
    JavaScript中两种类型的全局对象/函数
    JavaScript子类用Object.getPrototypeOf去调用父类方法
    JavaScript声明全局变量三种方式的异同
  • 原文地址:https://www.cnblogs.com/ninghongkun/p/6345609.html
Copyright © 2020-2023  润新知