Это моя первая попытка вызвать метод страницы ASP.NET из jQuery. Я получаю ошибку статуса 500 с сообщением responseText о том, что веб-метод не найден. Вот мой вызов jQuery $ .ajax:
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);
}
});
}
И вот метод страницы, который я пытаюсь вызвать:
[WebMethod()]
private static void CancelPlan(int activePlanId, string ntLogin)
{
StrategyRetrievalPresenter presenter = new StrategyRetrievalPresenter();
presenter.CancelExistingPlan(offer, ntLogin);
}
Я пробовал это, украсив веб-метод скобками '()' и без них. У кого-нибудь есть идея?





Ваш веб-метод должен быть общедоступным и статическим.
@Max - правильно, он должен быть как публичным, так и статическим, хотя в этом вопросе он уже был статическим.
Я просто предполагал, что проблема Виктора заключалась в том, чтобы забыть о статике.
Обратите внимание, что это неверно для веб-методов в asmx, где они должны быть общедоступными, а не статическими. См. stackoverflow.com/questions/4543347/… и stackoverflow.com/questions/3158678/….
Очистите раствор и восстановите. Я видел, как веб-методы отбрасывают 500, пока вы этого не сделаете.
Добавьте public static перед вашим методом ...
бывший.
[WebMethod]
public static string MethodName() {}
Ваш веб-метод должен быть объявлен как "статический".