ASP.NET jQuery错误:未知的Web方法

时间:2008-10-07 19:21:26

标签: asp.net jquery ajax

这是我第一次尝试从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方法来尝试这个。有人有想法吗?

4 个答案:

答案 0 :(得分:92)

您的网络方法需要公开且静态。

答案 1 :(得分:12)

清理解决方案并重建。我见过webmethods抛出500's直到你这样做。

答案 2 :(得分:2)

在您的方法之前添加public static ...

离。

[WebMethod]
public static string MethodName() {}  

答案 3 :(得分:1)

为了 ajax 成功:

对我来说,制作很有帮助:

  1. App_Start\RouteConfig

    设置 来自

settings.AutoRedirectMode = RedirectMode.Permanent;

settings.AutoRedirectMode = RedirectMode.Off;
  1. 制定您的使用方法:
public

static
  1. 添加:
using System.Web.Services;

并在方法之上使用:

[WebMethod] 

够了