zoukankan      html  css  js  c++  java
  • 【转】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>
  • 相关阅读:
    Tarjan算法
    10JS数组
    9JS循环
    8.JS流程控制
    7.JS运算符
    6.JS方法
    5.JS变量的各种问题
    java封装遇到的问题
    js报Uncaught SyntaxError: Unexpected token <错误 解决方法:
    使用layui出现Uncaught ReferenceError: layui is not defined问题解决:
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2464506.html
Copyright © 2011-2022 走看看