我們有一個簡單的ajax鏈接(Ajax.ActionLink(...)),它一直工作正常。最近,另一位開發人員將一些Ajax-ey代碼添加到使用asp腳本管理器的同一頁面中...現在突然第一個ajax鏈接不再起作用。更具體地說,我們得到錯誤:「sys.mvc.asynchyperlink'爲空或不是對象」。以下是一個示例:.Net MVC Ajax和Scriptmanager衝突
<a id="linkID"
href="someURL"
onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace });">
<img src="linkImage.jpg" />
</a>
....
<asp:ScriptManager ID="_someID" EnablePartialRendering="true" ScriptMode="Release" runat="server">
...
</asp:ScriptManager>
這兩者之間的關係是什麼?他們可以共存嗎?
編輯: 所以,事實證明,我們正在使用ScriptManager註冊一個服務引用掛鉤到我們已經建立了一個Web服務。 scriptmanager使得我們的javascript功能可以使用該服務。是否可以在不使用scriptmanager的情況下注冊/添加ServiceReference?這可能是一個完全不同的問題...
感謝您的回覆在本教程中所概述。 MicrosoftAjax.js已經被添加到文件中。我們正在使用腳本管理器來註冊一個servicereference,如上所述。我們將不得不找出另一種方式來做到這一點。 – rusty 2010-10-01 20:46:07
AFAIK這是不可能的。 ScriptManager需要生成服務代理,但它將接管sys對象並中斷sys.mvc。 – 2010-10-01 21:20:49