• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET AJAX + JSON 实现对象调用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近开始学习ASP.NET AJAX 搞了两天学了点皮毛,贴点代码 日后方便自己查看

客户端:

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="ASP.NETA_JAX.aspx.cs" Inherits="_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/jscript">
        function CallServer() {  

            //JSON发送对象
            ServerSum("{name:'linyijia',age:'21'}");
        }
        function GetRegister(rg, contex) {
            document.getElementById("TxtRegister").value=rg;
        }
    </script>
</head>
<body>
    <form >登录</button>
   
    </div>
    </form>
</body>
</html>

 

 

服务器:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;

public partial class _Default : System.Web.UI.Page ,ICallbackEventHandler
{
    Users u = null;
    protected void Page_Load(object sender, EventArgs e)
    {

       //回调GetRegister方法
        string CallBackFun = Page.ClientScript.GetCallbackEventReference(this,"arg","GetRegister","context");

       //创建ServerSum方法,在客户端调用的时候就,会回调GetRegister方法,把参数传给RaiseCallbackEvent(string eventArgument ),最后通过
      //GetCallbackResult()方法把返回值传给客户端

        string RegisterFun = string.Format("function ServerSum(arg,context){{{0};}}",CallBackFun);
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"ServerSum",RegisterFun,true);
       
    }
    string mssage = string.Empty;
    #region ICallbackEventHandler 成员


    public string GetCallbackResult()
    {
        return "服务器:你好,你的用户名为:" + u.Name + "你的年龄为" + u.Age;
    }

    public void RaiseCallbackEvent(string eventArgument)
    {
        JavaScriptSerializer js = new JavaScriptSerializer();
        u  =js.Deserialize<Users>(eventArgument);
       
    }

    #endregion
}

 

 Users类

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///User 的摘要说明
/// </summary>
public class Users
{
    string name;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    string age;

    public string Age
    {
        get { return age; }
        set { age = value; }
    }
}

 

原理:

使用JSON向服务器发送一个对象,服务器通过实现 ICallbackEventHandler接口后,重写GetCallbackResult和RaiseCallbackEvent方法,在回调的时候,在RaiseCallbackEvent方法

中反序列化JSON,并在GetCallbackResult把结果返回给客户端.具体的我以后有空再补充,欢迎大家讨论!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap