我们有一个简单的ajax链接(Ajax.ActionLink(...)),它一直运行良好。最近,另一位开发人员在使用asp脚本管理器的同一页面上添加了一些ajax-ey代码...现在突然第一个ajax链接不再有效。更具体地说,我们得到错误:“sys.mvc.asynchyperlink'为null或不是对象”。以下是一个示例:
<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注册一个ServiceReference来挂钩我们设置的Web服务。 scriptmanager通过我们的javascript函数提供服务。是否可以在不使用scriptmanager的情况下注册/添加ServiceReference?这可能是一个完全不同的问题......
答案 0 :(得分:0)
ScriptManager控件不能与ASP.NET MVC共存。只需将其删除并替换为以下内容:
<script src="MicrosoftAjax.js"><script>
请注意,路径将根据MicrosoftAjax.js在项目中的位置而有所不同,但它应该位于任何新的ASP.NET MVC项目的Static / js文件夹中。
答案 1 :(得分:0)
为了记录,我们最终使用Scriptmanager通过使用Web服务代理来使用Scriptmanager,如Stephen Walther本教程中所述http://stephenwalther.com/blog/archive/2008/03/14/using-asp-net-ajax-with-asp-net-mvc.aspx