代码隐藏:
[ScriptMethod]
[WebMethod]
public string SavePassword(string password, string username, string resellerId, string isPasswordReset)
{
return null; // For example
}
JavaScript的:
$.ajax({
type: 'POST',
url: 'login.aspx/SavePassword',
data: '{"password":"' + passwordInput + '","username":"' + hidusrname + '","resellerId":"' + hidResellerId + '","IsPasswordReset":"' + hidIsPasswordReset + '"}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result) { },
error: function () { alert('error');
}
});
public static string SavePassword()
有效,public string SavePassword()
不起作用。
如果我将webmethod改为静态,那么如果我不这样做就行不通。
如何在我的网页中使用static
方法进行webmethod?
答案 0 :(得分:1)
Web方法必须是静态的。实例Web方法是不可能的。原因在于它们的设计方式。
Web方法没有任何状态,也没有与页面其余部分的任何关系。没有理由通过整个ASP.NET管道来创建页面对象及其生命周期。它们也不需要处理页面对象创建所需的viewstate字段。并且当方法完全脱离页面对象时,必须将它们声明为静态才能正常运行。
作为回报,与常规ASP.NET页面或更新面板相比,Web方法提供了非常好的性能。