从C#中的JavaScript调用服务器端方法

时间:2017-07-08 15:26:28

标签: javascript c#

我想从JavaScript调用C#服务器方法。在JavaScript函数中,警报即将到来,但不会调用服务器方法。

这是我的代码。这是服务器端方法:

public void ReloadData()
{
     //here is the code
}

这是客户端功能:

function GetData() {
alert("Function called");
PageMethods.ReloadData();
}

现在,这里调用getdata函数并且警报也即将到来但是在服务器端方法中没有被调用。 [我在调试模式下看到了。]

1 个答案:

答案 0 :(得分:1)

我相信你必须使用AJAX。看看这里:https://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx

ReloadData将成为您背后的代码中的web方法,看起来像这样:

[System.Web.Services.WebMethod]
public void ReloadData()
{
     //here is the code
}

然后从客户端你会做这样的事情:

function GetData() {
    $.ajax({
        type: "POST",
        url: "CS.aspx/ReloadData",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function(response) {
            alert(response.d);
        }
    });

}

CS.aspx是您网页的名称。

继续下面的评论;如果您不想使用JQuery,那么您的Javascript代码将如下所示:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'CS.aspx/ReloadData');
xhr.onload = function() {
    if (xhr.status === 200) {
        alert('Successful');
    }
    else {
        alert('Request failed.  Returned status of ' + xhr.status);
    }
};
xhr.send();