2008-10-07 6 views
25

C'est la première fois que j'essaie d'appeler une méthode de page ASP.NET à partir de jQuery. Je reçois une erreur de statut 500 avec le message responseText que la méthode Web ne peut pas être trouvée. Voici mon appel jQuery $ .ajax:Erreur jQuery ASP.NET: méthode Web inconnue

function callCancelPlan(activePlanId, ntLogin) { 
    var paramList = '{"activePlanId":"' + activePlanId + '","ntLogin":"' + ntLogin + '"}'; 
    $.ajax({ 
     type: "POST", 
     url: "ArpWorkItem.aspx/CancelPlan", 
     data: paramList, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function() { 
      alert("success"); 
     }, 
     error: function(xml,textStatus,errorThrown) { 
      alert(xml.status + "||" + xml.responseText); 
     } 
    }); 
} 

Et voici la méthode de la page que je suis en train d'appeler:

[WebMethod()] 
private static void CancelPlan(int activePlanId, string ntLogin) 
{ 
    StrategyRetrievalPresenter presenter = new StrategyRetrievalPresenter(); 
    presenter.CancelExistingPlan(offer, ntLogin);    
} 

J'ai essayé en décorant la méthode Web avec et sans les parens'() '. Quelqu'un a une idée?

Répondre

80

Votre méthode Web doit être publique et statique.

+1

Eh bien, c'était une erreur stupide. Merci, cependant ..;) –

+2

que se passe-t-il si j'ai cette erreur alors que la méthode est publique? –

+13

Votre méthode Web doit être déclarée comme "statique" – Max

11

Nettoyez la solution et reconstruisez-la. J'ai vu des webmethods lancer 500 jusqu'à ce que vous le fassiez.

1

Ajouter public static avant votre méthode ...

ex.

[WebMethod] 
public static string MethodName() {} 
Questions connexes