Asp.NET 中 Ajax 的配置使用
1、下載ajax.net組件
新建一個(gè)web項(xiàng)目,使用.NET1.1就引用類庫(kù)AjaxPro.dll,如果是使用.NET2.0 就引用AjaxPro.2.dll
AjaxPro.NET包下載,AjaxPro.dll,AjaxPro.2.dll都在里面
我用的是vs2008 .net2.0? ie7.0
2、配置web.config
?在<system.web> 節(jié)點(diǎn)內(nèi)增加
<httpHandlers>
???? <add verb="*"path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
3、空間聲明,注冊(cè)類名
后臺(tái)代碼類聲明前可以設(shè)置Ajax方法空間聲明,可以不設(shè),默認(rèn)為類名_Default
[AjaxPro.AjaxNamespace("myAjax")]
public partial class _Default : System.Web.UI.Page
在頁(yè)面加載Page_Load事件中注冊(cè)
?protected void Page_Load(object sender, EventArgs e)
{
???????//注冊(cè)當(dāng)前頁(yè)面類
???????AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
}
4、編寫服務(wù)器端方法
?[AjaxPro.AjaxMethod]
public string? ReturnAjax()
{
???????return "ajax? success";
}
[AjaxPro.AjaxMethod]聲明這個(gè)函數(shù)是由AJAX.NET在頁(yè)面異步請(qǐng)求的,總之記住要通過(guò)AJAX獲得數(shù)據(jù)的后臺(tái)函數(shù)就使用[AjaxPro.AjaxMethod]來(lái)聲明一下。
如果函數(shù)要對(duì)SESSION進(jìn)行操作,[AjaxPro.AjaxMethod]需要改成[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]。
在 [AjaxPro.AjaxMethod(AjaxPro.……)]? 的‘……?’部分ajax.net還提供了其他很多方法,可以處理一些特殊的請(qǐng)求。 還有一點(diǎn)注意,如果使用Application,直接讀取或?qū)懭階pplication也是不行的,需要使用HttpContext.Current.Application,同樣對(duì) Request的訪問(wèn)也需要使用HttpContext.Current.Request。原因是直接使用的Application 或Request等 都是由Page類繼承下來(lái)的,而用Ajax.net對(duì)后臺(tái)方法訪問(wèn)的時(shí)候,這些方法并不屬于Page類。但是Session比較特殊,使用 HttpContext.Current.Session仍然不能訪問(wèn),必須使用上面一段所用的方法并且直接就用Session就行。
5、客戶端代碼
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MyFirstProject._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>Default頁(yè)面</title>
<script language="javascript">
function myFirstAjax()
{
? //alert "ajax? success"
? var obj= myAjax.ReturnAjax();
? alert(obj.value);???????????
? //alert "ajax? success"
? myAjax.ReturnAjax(alertObject);
? //alert "ajax? success"
? myAjax.ReturnAjax(function(obj){alert(obj.value);});
}
?function alertObject(obj)
{
? alert(obj.value);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input type="button" ID = "btnAjaxTest" runat="server" value="AJax Test" οnclick="javascript:myFirstAjax()" />
</form>
</body>
</html>
?
紅色的myAjax為后臺(tái)聲明的命名空間,另外? myAjax.ReturnAjax()中的參數(shù)除了對(duì)應(yīng)后臺(tái)函數(shù)的參數(shù)外,最后可以使用一個(gè)表達(dá)式參數(shù),這個(gè)參數(shù)是某個(gè)客戶段函數(shù)名,設(shè)置后,? myAjax.ReturnAjax請(qǐng)求后所獲得OBJECT對(duì)象將被做為 表達(dá)式參數(shù)函數(shù)的一個(gè)參數(shù)傳遞到該函數(shù)中,然后通過(guò)這個(gè)OBJECT參數(shù)的VALUE就可以獲得 AJAX請(qǐng)求后臺(tái)函數(shù)所返回的值了 通過(guò)這幾個(gè)步驟 就可以做出一個(gè)簡(jiǎn)單的使用Ajax.net結(jié)合.NET的示例頁(yè)面了
?
轉(zhuǎn)載于:https://www.cnblogs.com/sundongxiang/archive/2009/09/10/1563923.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Asp.NET 中 Ajax 的配置使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 学习jQuery(一),做的第一个可拖动
- 下一篇: Python3.0 我的DailyRep