.Net MVC Ajax和Scriptmanager冲突

时间:2010-10-01 19:45:03

标签: .net asp.net-mvc asp.net-mvc-2 asp.net-ajax scriptmanager

我们有一个简单的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?这可能是一个完全不同的问题......

2 个答案:

答案 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