• 【转】Ajax异步调用ashx返回序列化类


    GetEmployee.ashx 代码

    <%@ WebHandler Language="C#" Class="AspNetAjaxOverview.GetEmployee" %>
    
    using System;
    using System.Web;
    using System.Web.Script.Serialization;
    
    namespace AspNetAjaxOverview
    {
        public class GetEmployee : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                
                string firstName = context.Request.Params["firstName"];
                string lastName = context.Request.Params["lastName"];
                string title = context.Request.Params["title"];
                Employee employee = new Employee(firstName, lastName, title);
                
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                string jsonEmp = serializer.Serialize(employee);
                
                context.Response.Write(jsonEmp);
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
    
        }
    }

    Employee.cs类代码

    View Code
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    namespace AspNetAjaxOverview
    {
        /// <summary>
        /// Summary description for Employee
        /// </summary>
        public class Employee
        {
            private string _FirstName;
            private string _LastName;
            private string _Title;
    
            public Employee() { }
    
            public Employee(string firstName, string lastName, string title)
            {
                this._FirstName = firstName;
                this._LastName = lastName;
                this._Title = title;
            }
    
            public string FirstName
            {
                get
                {
                    return this._FirstName;
                }
            }
    
            public string LastName
            {
                get
                {
                    return this._LastName;
                }
            }
    
            public string Title
            {
                get
                {
                    return this._Title;
                }
            }
        }
    }


    异表调用ashx代码

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Asynchronous Communication Layer Overview</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            
            <script language="javascript" type="text/javascript">
                function showEmployee(firstName, lastName, title)
                {
                    var request = new Sys.Net.WebRequest();
                    request.set_url('GetEmployee.ashx');
                    request.set_httpVerb("POST");
                    request.add_completed(onGetEmployeeComplete);
                    
                    var requestBody = String.format(
                        "firstName={0}&lastName={1}&title={2}",
                        encodeURIComponent(firstName),
                        encodeURIComponent(lastName),
                        encodeURIComponent(title));
                    request.set_body(requestBody);
                    
                    request.invoke();
                }
                
                function onGetEmployeeComplete(response)
                {
                    
                
                    if (response.get_responseAvailable())
                    {
                        var employee = response.get_object();
                        alert(String.format(
                            "Hello I'm {0} {1}, my title is '{2}'",
                            employee.FirstName,
                            employee.LastName,
                            employee.Title));
                    }
                }
            </script>
            
            <input type="button" value="Bill Gates"
                onclick="showEmployee('Bill', 'Gates', 'Chair man')" />
            <input type="button" value="Steve Ballmer"
                onclick="showEmployee('Steve', 'Ballmer', 'CEO')" />
        </form>
    </body>
    </html>
  • 相关阅读:
    flume-agent实例
    Apache Ant在Windows下配置环境变量
    作业流程和优化
    使用MapReduce查询Hbase表指定列簇的全部数据输出到HDFS(一)
    使用MapReduce将HDFS数据导入到HBase(二)
    数据结构(一)线性表——顺序表
    Java类集综合练习——信息管理(增、删、改、查)
    MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
    总结一下这几节Java课的...重点!!!
    文件I/O操作——File类
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2464506.html
Copyright © 2020-2023  润新知