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

本文介绍了一个简单的ASP.NET AJAX示例,演示如何使用JSON发送对象到服务器,并通过客户端回调方法接收服务器响应。具体包括客户端页面设置、服务器端逻辑处理及用户交互流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开始学习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 id="form1" runat="server">
    <div>
   
        <br />
        用户名:<input id="TxtNum1" type="text" />
        <br />
        服务器:<input id="TxtRegister" type="text" /><br />
       <button id="SumBtn" type="button" onclick="CallServer()">登录</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把结果返回给客户端.具体的我以后有空再补充,欢迎大家讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值