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 服务的正确方法是啥?