我想从JavaScript调用C#服务器方法。在JavaScript函数中,警报即将到来,但不会调用服务器方法。
这是我的代码。这是服务器端方法:
public void ReloadData()
{
//here is the code
}
这是客户端功能:
function GetData() {
alert("Function called");
PageMethods.ReloadData();
}
现在,这里调用getdata
函数并且警报也即将到来但是在服务器端方法中没有被调用。 [我在调试模式下看到了。]
答案 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();