Asp.net Json 客戶端与服务端传递

这两天在做一个WEB的项目,很久没有做WEB项目了,再回来做WEB项目,感觉有很多新鲜感。

此次实现的功能为,前台通过Jquery提供的Ajax方法读取後台数据,後台将对象序列化为Json字符串返回给前台,

前台用Json2.js提供的方法将对象序列化为Json字符串返回给後台,後台都通过Json.net转换为对象;

前台Ajax代码:

 1  var obj;
 2  function GetObject() {
 3         $.ajax({
 4             type: "POST",
 5             url: "Test.aspx/GetObject",
 6             contentType: "application/json; charset=utf-8",
 7             data: "{'name':'" + $("#TB_Name").val() + "'}",
 8             dataType: 'json',
 9             success:  function(data) {
10                 obj = jQuery.parseJSON(data.d);
11                  if (obj ==  null) { alert("未能查找到此單號對應的資料"); }
12             },
13             error:  function(jqXHR, textStatus, errorThrown) {
14                 alert(textStatus + " " + errorThrown);
15             }
16         });
17     }

 

後台Test.aspx的GetObject方法:

 

using System;
using System.Collections.Generic;
using System.Web.Services;
using Newtonsoft.Json;

public  partial  class Form_Test : System.Web.UI.Page
{
     protected  void Page_Load( object sender, EventArgs e)
    {
    }

    [WebMethod]
     public  static  string GetObject( string name)
    {
         // 通过参数获取对象
         TestObject obj =  new TestObject(name);
         return JsonConvert.SerializeObject(obj);
    }
}

 

前台通过Ajax提交对象到後台:

 

function SaveToOrder() {
        obj.Name = $( " #TB_Name ").val();
        $.ajax({
            type:  " POST ",
            url:  " Test.aspx/SaveObject ",
            contentType:  " application/json; charset=utf-8 ",
            data:  " {'objString':' " + JSON.stringify(obj) +  " '} ",
            dataType:  ' json ',
            success: function(data) {
                
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert(textStatus +  "   " + errorThrown);
            }
        });
    }

 

台後接收提交的信息,并处理:

 

[WebMethod]
     public  static  bool SaveObject( string objString)
    {
         try
        {
            TestObject obj = JsonConvert.DeserializeObject<TestObject >(objString);
       //处理信息
        }
         catch (Exception ex) {  return  false }
        
         return  true;
    }

 

在使用.net 2.0的时候,使用Jquery提共的Ajax必需要在web.config的<system.web></system.web>标签里添加

<httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

PS:如不添加,肯定不能运行,运行後,获取的数据,一定要使用“.d”去获取返回的数据,否则为整页的HTML数据

关於“.d”使用方法:

success function(data){

var result = data.d;

 

在上面里使用了 :

jquery-1.6.min.js 此文件可以在JQUERY的网站上下载;

json2.js              此文件可以在Json的网站上下载;

Newtonsoft.Json.dll 此文件可以在Json的网站上下载,并放在WEB程序的BIN目录下!引用空间命名Newtonsoft.Json;

 

 

转载于:https://www.cnblogs.com/badtree/articles/2242515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值