2008-10-07 7 views
25

To jest moja pierwsza próba wywołania metody strony ASP.NET z jQuery. Otrzymuję komunikat o błędzie statusu 500 z komunikatem responseText, że nie można znaleźć metody internetowej. Tu jest mój jQuery $ .ajax wezwanie:Błąd jQuery programu ASP.NET: nieznana metoda internetowa

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); 
     } 
    }); 
} 

A oto metoda strona Próbuję zadzwonić:

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

Próbowałem to poprzez dekorowanie Method internetową i bez parens'() ". Ktoś ma pomysł?

Odpowiedz

80

Twoja metoda internetowa musi być publiczna i statyczna.

+1

Cóż, to był głupi błąd. Dzięki, choć ..;) –

+2

co zrobić, jeśli mam ten błąd, gdy wtedy metoda jest publiczna? –

+13

Twoja metoda sieciowa musi być zadeklarowana jako "statyczna" – Max

11

Oczyść rozwiązanie i odbuduj. Widziałem, jak webmethods rzucają 500, dopóki tego nie zrobisz.

1

dodawania public static przed metody ...

ex.

[WebMethod] 
public static string MethodName() {}