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>