这是我第一次尝试从jQuery调用ASP.NET页面方法。我收到状态500错误,其中包含无法找到Web方法的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);
}
我通过使用和不使用parens'()来装饰Web方法来尝试这个。有人有想法吗?
答案 0 :(得分:92)
您的网络方法需要公开且静态。
答案 1 :(得分:12)
清理解决方案并重建。我见过webmethods抛出500's直到你这样做。
答案 2 :(得分:2)
在您的方法之前添加public static
...
离。
[WebMethod]
public static string MethodName() {}
答案 3 :(得分:1)
为了 ajax 成功:
对我来说,制作很有帮助:
App_Start\RouteConfig
设置 来自
settings.AutoRedirectMode = RedirectMode.Permanent;
到
settings.AutoRedirectMode = RedirectMode.Off;
public
static
using System.Web.Services;
并在方法之上使用:
[WebMethod]
够了