2010-10-01 22 views
0

Nous avons un simple lien ajax (Ajax.ActionLink (...)) qui fonctionne correctement. Récemment, un autre développeur a ajouté du code ajax-ey à la même page qui utilise un gestionnaire de script asp ... maintenant, le premier lien ajax ne fonctionne plus. Plus spécifiquement, nous obtenons l'erreur: "sys.mvc.asynchyperlink" est null ou un objet ". Voici un exemple:.Net Conflit MVC Ajax et 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> 

Quelle est la relation entre ces deux? Peuvent-ils coexister?

EDIT: donc, il se trouve que nous utilisons le ScriptManager pour enregistrer un ServiceReference pour accrocher dans un service Web, nous avons mis en place. Le scriptmanager rend le service disponible depuis nos fonctions javascript. Est-il possible d'enregistrer/ajouter le ServiceReference sans utiliser le scriptmanager? C'est peut-être une question complètement différente ...

Répondre

0

Le contrôle ScriptManager n'est pas construit pour coexister avec ASP.NET MVC. Il suffit de l'enlever et le remplacer par ce qui suit:

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

Notez que le chemin varie en fonction de l'endroit où MicrosoftAjax.js est dans votre projet, mais il devrait être dans le dossier de/statique dans une nouvelle ASP.NET Projet MVC.

+0

merci pour votre réponse. MicrosoftAjax.js a déjà été ajouté au fichier. Nous utilisions le scriptmanager pour enregistrer une servicereference comme expliqué ci-dessus. nous devrons trouver une autre façon de faire cela. – rusty

+0

AFAIK ce n'est pas possible. Le ScriptManager est requis pour générer le proxy de service, mais il va prendre en charge l'objet 'sys' et casser' sys.mvc'. –