VS 2008
本文通過兩個簡單的例子,瞭解Asp.Net Ajax Asynchronous Communication Layer
Asp.Net Ajax非同步通訊層提供了一系列用戶端的類,用於用戶端請求服務端
第一個例子:請求服務端頁面
1) 被請求頁 Ajax_GetUserName.aspx
html代碼僅留頁面聲明,其餘全部清楚:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax_GetUserName.aspx.cs" Inherits="Ajax_GetUserName" %>
Ajax_GetUserName.aspx.cs頁面寫處理邏輯:public partial class Ajax_GetUserName : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["userId"] == "1") {
Response.Write("guozhijian");
}
else {
Response.Write(string.Empty);
}
}
}
2) 用戶端請求
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.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>Untitled Page</title>
<script type="text/javascript">
function btnGetNameClickHandler() {
var req = new Sys.Net.WebRequest();
req.set_url("Ajax_GetUserName.aspx?userId=1");
req.add_completed(requestCompleted);
req.invoke();
}
function requestCompleted(executor, eventArgs) {
if(executor.get_statusCode() == 200) {
alert(executor.get_responseData());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="smgr" runat="server"></asp:ScriptManager>
<div>
<input type="button" id="btnGetName" onclick="btnGetNameClickHandler()" value="get name" />
</div>
</form>
</body>
</html>
第二個例子:請求XML文檔
1)建立UserInfos.xml
<?xml version="1.0" encoding="utf-8" ?>
<userInfos>
<userInfo>
<userId>1</userId>
<userName>guozhijian</userName>
</userInfo>
<userInfo>
<userId>2</userId>
<userName>zhenglanzhen</userName>
</userInfo>
</userInfos>
2)用戶端請求
function btnGetXmlClickHandler() {
var req = new Sys.Net.WebRequest();
req.set_url("UserInfos.xml");
req.add_completed(getXmlCompleted);
req.invoke();
}
function getXmlCompleted(executor, eventArgs) {
if(executor.get_statusCode() == 200) {
alert(executor.get_xml().xml);
}
}