2009-06-01 74 views
2

我有這個環節,努力實現AJAX登錄,我的網頁上:ASP.Net MVC AJAX鏈接無法使用

<%= Ajax.ActionLink("Log On", "LogOn", "Account", new AjaxOptions { 
    UpdateTargetId = "lll", 
    Confirm = "blah"}) %> 

有附近id爲LLL一個div。當我點擊鏈接時,我得到了blah的確認(只是爲了調試目的而添加的,沒有它的行爲是相同的),但沒有任何反應。沒有請求到達服務器(因爲我在LogOn操作方法上有一個斷點)。這是在Chrome和IE8中。在FF3中,它打開登錄視圖,但作爲一個頁面,它不會通過AJAX下載。

任何想法可能是錯誤的?

回答

5

問題是,ajax操作鏈接在默認情況下發出POST請求,並且它被引導到另一個LogOn方法(接受POST的那個方法),這就是爲什麼我沒有擊中斷點另外,它失敗了,因爲沒有發送必要的POST數據。添加HttpMethod到動作鏈接修復它:

<%= Ajax.ActionLink("Log On", "LogOn", "Account", new AjaxOptions { 
    UpdateTargetId = "lll", 
    Confirm = "blah", 
    HttpMethod = "Get"}) %> 
0

是否包含在頭部分Ajax客戶端腳本:

  • MicrosoftMvcAjax.js
  • MicrosoftAjax.js
+0

是的,我包括他們。謝謝。 – Pablo 2009-06-01 13:15:25

1

聽起來好像有使JavaScript的網頁上的一些JavaScript錯誤插入以處理AJAX請求不會觸發。你有沒有在頁面加載的FireBug中查看它,看看你的所有Javascript加載是否正確?另外,您的Microsoft JavaScript庫版本是否與您正在使用的MVC版本匹配?我至少記得一次版本的進展,我不得不手動更新我的項目中的Microsoft JavaScript庫的版本。如果你的項目已經存在多個版本的MVC,我會建議追蹤新的庫(創建一個新項目並將它們複製到舊項目或在安裝目錄中打開項目歸檔並手動提取它們)並安裝它們。