您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關IIS7中Ajax.AjaxMethod無效的原因及解決方法是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
最近做用Ajax.AjaxMethod方法的時候,在asp.net的服務器下一切正常,用iis的時候,js中總是cs類找不到,我就郁悶了,折騰了大半天,終于找到錯誤原因了。
因為我發布網站用的是iis7,所以在web.config位置文件中<system.webServer><handlers>></handlers><system.webServer>里加入<add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />標簽。
我的問題就是由于沒有注意到iis版本問題,導致的。。。悲了個劇!
現在將整個方法要注意的都寫下來,也方便以后再看,希望的的遭遇能讓碰到同樣錯誤的人看到,省下一點寶貴的時間,畢竟生命誠可貴嗎,少費點神,少掉幾根毛,哈哈。。。
直接在網上找篇全面的,別罵我抄襲。。。
使用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" />
在CS程序中加上
代碼如下:
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里調用的時候會提示“不支持此屬性或方法”
4、確保頁面中有<form runat="server"></form>標簽。
5、ASPX的JAVASCRIPT中調用時加上類名 ,如:
var address = ClassName.GetAddress('123').value;
以上就是IIS7中Ajax.AjaxMethod無效的原因及解決方法是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。