Web方法仅在标记为静态的情况下才有效,否则不会 - javascript

        

    

后台代码:

[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?

参考方案

Web方法必须是静态的。实例Web方法是不可能的。原因是它们的设计方式。

Web方法没有任何状态,或与页面其余部分没有任何关系。没有理由遍历整个ASP.NET管道中创建页面对象及其整个生命周期的整个过程。他们也不需要处理创建页面对象所需的viewstate字段。由于方法与页面对象完全分离,因此必须将它们声明为静态方法才能正常运行。

作为回报,与常规的ASP.NET页面或更新面板相比,Web方法提供了非常好的性能。

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

获取JavaScript值到C#字符串 - javascript

                        是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

对ID为'abc%'的dom执行操作 - javascript

我想对ID为'abc%'的DOM进行一些操作<a id='abc1'></a> <a id='abc2'></a> <a id='abc3'></a> <a id='abc4'></a>…

.NET C#Webbrowser填充输入,不带ID或类名 - javascript

我需要在网络浏览器中填写一个输入,但这不起作用。我认为必须使用name属性来完成,但是怎么做呢?foreach (HtmlElement login in webBrowser1.Document.GetElementsByTagName("input")) { if (login.GetAttribute("name"…