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

Posted

技术标签:

【中文标题】ASP.NET jQuery 错误:未知的 Web 方法【英文标题】:ASP.NET jQuery error: Unknown Web Method 【发布时间】:2010-09-15 20:21:11 【问题描述】:

这是我第一次尝试从 jQuery 调用 ASP.NET 页面方法。我在 responseText 消息中收到状态 500 错误,提示找不到 Web 方法。这是我的 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);            

我已经通过使用和不使用括号'()' 来装饰 Web 方法来尝试这个。有人有想法吗?

【问题讨论】:

【参考方案1】:

您的网络方法需要是公共的和静态的。

【讨论】:

您的网络方法需要声明为“静态” @Max -- 正确,它必须是公共的和静态的,尽管在这个问题中它已经是静态的。 我只是猜测维克多的问题是忘记了静电。 请注意,对于 asmx 中的 Web 方法,情况并非如此,它们必须是公共的而不是静态的。见***.com/questions/4543347/… 和***.com/questions/3158678/…【参考方案2】:

清理解决方案并重建。在你这样做之前,我已经看到 webmethods 抛出 500 次。

【讨论】:

【参考方案3】:

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

例如。

[WebMethod]
public static string MethodName()   

【讨论】:

【参考方案4】:

为了 ajax 成功:

对我来说,这样做很有帮助:

    App_Start\RouteConfig

    设置 来自

settings.AutoRedirectMode = RedirectMode.Permanent;

settings.AutoRedirectMode = RedirectMode.Off;
    制作你的使用方法:
public

static
    添加:
using System.Web.Services;

在方法之上只使用:

[WebMethod] 

够了

【讨论】:

以上是关于ASP.NET jQuery 错误:未知的 Web 方法的主要内容,如果未能解决你的问题,请参考以下文章

对 ASP.NET Web 服务的 jQuery ajax POST 调用随机失败

Web 请求错误“登录失败:未知用户名或密码错误”。有任何想法吗?

asp.net mvc 控制器返回 json List<T> 未知错误

ASP.NET - 使用 jQuery 实现基于 JSON 的 Web 服务的正确方法是啥?

加载 ASP.Net MVC JSONResult jQuery DataTables

如何使用 jQuery 调用 ASP.NET Web 服务?