.Net MVC Ajax и Scriptmanager конфликт - PullRequest
       28

.Net MVC Ajax и Scriptmanager конфликт

0 голосов
/ 01 октября 2010

У нас есть простая ссылка ajax (Ajax.ActionLink (...)), которая работает нормально. Недавно другой разработчик добавил некоторый код ajax-ey на ту же страницу, которая использует менеджер сценариев asp ... теперь вдруг первая ссылка ajax больше не работает. Более конкретно, мы получаем ошибку: «sys.mvc.asynchyperlink 'является нулевым или не является объектом». Ниже приведен образец:

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

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

РЕДАКТИРОВАТЬ: Итак, получается, что мы используем скрипт-менеджер для регистрации ServiceReference, чтобы подключиться к настроенному нами веб-сервису. Менеджер сценариев делает сервис доступным из наших функций javascript. Можно ли зарегистрировать / добавить ServiceReference без использования диспетчера сценариев? Возможно, это совершенно другой вопрос ...

Ответы [ 2 ]

0 голосов
/ 04 октября 2010

Для справки, мы закончили тем, что обошлись, используя Scriptmanager для ссылки на службу, используя прокси веб-службы, как описано в этом руководстве Стивеном Вальтером http://stephenwalther.com/blog/archive/2008/03/14/using-asp-net-ajax-with-asp-net-mvc.aspx

0 голосов
/ 01 октября 2010

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

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

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

...