2010-11-07 5 views
1

Dans ASP.NET 3.5 J'ai eu ce javascript sur une page (default.aspx):ASP.NET 4 jquery appel ajax webmethod

function getMoreNewsItems() { 
    $.ajax({ 
     type: "POST", 
     url: "default.aspx/LoadNewsItems", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (msg) { 
      alert(msg.d); 
     } 
    }); 
} 

Avec cela dans le code sous-jacent (default.aspx.cs):

[System.Web.Services.WebMethod] 
public static string LoadNewsItems() { 
    return "test1"; 
} 

J'ai un ScriptManager sur la page avec EnablePageMethods = true. Tout a bien fonctionné.

Maintenant, le projet mis à niveau vers ASP.NET 4.0 et utilise la nouvelle fonctionnalité de routage d'URL. L'appel AJAX ne fonctionne plus. Dans FireBug, je vois qu'il retourne la page complète, au lieu de la réponse XML.

Qu'est-ce qui a changé dans ASP.NET 4 qui pourrait causer cette erreur?

Répondre

8

fixe,

changement

url: "default.aspx/LoadNewsItems", 

Pour

url: '<%= ResolveUrl("default.aspx/LoadNewsItems") %>', 

Il a à voir avec l'URL de routage.

+0

vous pouvez accepter votre propre réponse si cela fonctionne pour vous. – Chris

Questions connexes