IIS7中Ajax.AjaxMethod無效的原因及解決方案

來源:互聯網
上載者:User
使用Ajax.AjaxMethod方法在asp.net的伺服器下一切正常,用iis的時候,js中總是cs類找不到,具體的解決方案如下,遇到類似情況的朋友可以參考下 

最近做用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;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.