0

У нас есть простая ссылка ajax (Ajax.ActionLink (...)), которая работает нормально. Недавно другой разработчик добавил некоторый код ajax-ey на ту же страницу, где используется asp scriptmanager ... теперь внезапно первая ссылка 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> 

Какая связь между этими двумя? Могут ли они сосуществовать?

EDIT: так, то получается, что мы используем ScriptManager зарегистрировать ServiceReference вклиниться в веб-сервиса мы создали. Сценарист делает службу доступной из наших функций javascript. Можно ли зарегистрировать/добавить ServiceReference без использования scriptmanager? Это, возможно, совсем другой вопрос ...

ответ

0

Элемент управления ScriptManager не создан для совместного использования с ASP.NET MVC. Просто удалите его и заменить его следующим:

<script src="MicrosoftAjax.js"><script> 

Обратите внимание, что путь будет меняться в зависимости от того, где MicrosoftAjax.js в вашем проекте, но он должен быть в папке Static/А- в любом новом ASP.NET Проект MVC.

+0

спасибо за Ваш ответ. MicrosoftAjax.js уже добавлен в файл. Мы использовали scriptmanager для регистрации servicereference, как описано выше. нам придется выяснить другой способ сделать это. – rusty

+0

AFAIK это невозможно. ScriptManager требуется для создания прокси-сервера службы, но он возьмет на себя объект 'sys' и сломает' sys.mvc'. –

Смежные вопросы