asp.net中ajax.ajaxMethod使用方法和實例
使用AjaxMethod可以在客戶端異步調用服務端方法,簡單地說就是在JS裏調用後臺.cs文件裏的方法,做一些JS無法做到的操作,如查詢數據庫
使用AjaxMethod要滿足以下條件:
1. 如果還沒有ajax.dll文件,需要先下載一個;
2. 將ajax.dll添加到項目引用中:在VS的解決方案資源管理器中右鍵點擊項目名稱–“添加項目引用”–瀏覽,找到ajax.dll,確定;
3. 在webCofig中<httpHandlers>
里加上節點:
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
如果是IIS7,則需要在節點<system.webServer></system.webServer>
里加上:
<add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
4. 在CS程序Page_Load中加上
protected void Page_Load(objectsender,EventArgse)
{
Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是這個CS文件的類名
}
- 編寫CS方法,方法前加上[Ajax.AjaxMethod()],如果要使AjaxMethod裏面能調用session,寫成:[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)] ,如:
[Ajax.AjaxMethod()]
public string GetAddress(string UserID)
{
string Address="";
//do somthing to get the address here
return Address;
}
注意方法要寫成public,否則在JS裏調用的時候會提示“不支持此屬性或方法”
6. 確保頁面中有標籤。
7. ASPX的JAVASCRIPT中調用時加上類名 ,如:
var address = ClassName.GetAddress('123').value;
或者:
ClassName.GetAddress('123',responsFunc);
function responsFunc(data){
//do what you want
}