ASP.NET Ajax学习笔记(一)异步通信层
异步通信层使用Sys.Net.WebRequest
类提供用于发出 Web 请求的客户端脚本功能
var wRequest = new Sys.Net.WebRequest();
Name
说明
注册与 Web 请求实例关联的事件处理程序。
引发关联 Sys.Net.WebRequest 实例的完成事件。
获取 Web 请求实例的解析后的 URL。
为 Web 请求实例发出网络调用。
移除与 Web 请求实例关联的事件处理程序。
获取或设置 Web 请求的 HTTP 正文。
获取或设置关联 Web 请求实例的执行器。
获取 Web 请求的 HTTP 标头。
获取或设置用于发出 Web 请求的 Web 请求 HTTP 谓词。
获取或设置 Web 请求实例的超时值。
获取或设置 Web 请求实例的 URL。
获取或设置与 Web 请求实例关联的用户上下文。
示例
Employee 类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///Employee 的摘要说明
/// </summary>
public class Employee
{
private string _FirstName;
private string _LastName;
private string _Title;
public Employee()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
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;
}
}
}
AsyncComLayer.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AsyncComLayer.aspx.cs" Inherits="AsyncComLayer" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
function showEmployee(firstName, lastName, title) {
var request = new Sys.Net.WebRequest(); //初始化WebRequest类的新实例
request.set_url("GetEmployee.ashx"); //设置Web请求实例的URL
request.set_httpVerb("post"); //设置用于发出Web请求的Web请求HTTP谓词
request.add_completed(onGetEmployeeComplete);//注册与Web请求实例关联的事件处理程序
var requestBody = String.format("firstName={0}&lastName{1}&title={2}", encodeURI(firstName), encodeURI(lastName), encodeURI(title));
request.set_body(requestBody); //设置Web请求的HTTP正文
request.invoke(); //为Web请求实例发出网络调用
}
function onGetEmployeeComplete(response) {
if (response.get_responseAvailable()) {
var employee = response.get_object();
alert(String.format("firstName={0},lastName={1},title={2}",
employee.FirstName,
employee.LastName,
employee.Title));
}
}
</script>
<div>
<input type="button" value="Bill Gates" onclick="showEmployee(‘Bill‘,‘Gates‘,‘Chair man‘)" />
<input type="button" value="Steve Ballmer" onclick="showEmployee(‘Steve‘,‘Ballmer‘,‘CEO‘)" />
</div>
</form>
</body>
</html>
var wRequest = new Sys.Net.WebRequest();
Name |
说明 |
---|---|
注册与 Web 请求实例关联的事件处理程序。 |
|
引发关联 Sys.Net.WebRequest 实例的完成事件。 |
|
获取 Web 请求实例的解析后的 URL。 |
|
为 Web 请求实例发出网络调用。 |
|
移除与 Web 请求实例关联的事件处理程序。 |
|
获取或设置 Web 请求的 HTTP 正文。 |
|
获取或设置关联 Web 请求实例的执行器。 |
|
获取 Web 请求的 HTTP 标头。 |
|
获取或设置用于发出 Web 请求的 Web 请求 HTTP 谓词。 |
|
获取或设置 Web 请求实例的超时值。 |
|
获取或设置 Web 请求实例的 URL。 |
|
获取或设置与 Web 请求实例关联的用户上下文。 |
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> ///Employee 的摘要说明 /// </summary> public class Employee { private string _FirstName; private string _LastName; private string _Title; public Employee() { // //TODO: 在此处添加构造函数逻辑 // } 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; } } }
AsyncComLayer.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AsyncComLayer.aspx.cs" Inherits="AsyncComLayer" %> <!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> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <script type="text/javascript"> function showEmployee(firstName, lastName, title) { var request = new Sys.Net.WebRequest(); //初始化WebRequest类的新实例 request.set_url("GetEmployee.ashx"); //设置Web请求实例的URL request.set_httpVerb("post"); //设置用于发出Web请求的Web请求HTTP谓词 request.add_completed(onGetEmployeeComplete);//注册与Web请求实例关联的事件处理程序 var requestBody = String.format("firstName={0}&lastName{1}&title={2}", encodeURI(firstName), encodeURI(lastName), encodeURI(title)); request.set_body(requestBody); //设置Web请求的HTTP正文 request.invoke(); //为Web请求实例发出网络调用 } function onGetEmployeeComplete(response) { if (response.get_responseAvailable()) { var employee = response.get_object(); alert(String.format("firstName={0},lastName={1},title={2}", employee.FirstName, employee.LastName, employee.Title)); } } </script> <div> <input type="button" value="Bill Gates" onclick="showEmployee(‘Bill‘,‘Gates‘,‘Chair man‘)" /> <input type="button" value="Steve Ballmer" onclick="showEmployee(‘Steve‘,‘Ballmer‘,‘CEO‘)" /> </div> </form> </body> </html>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。