2017-07-08 113 views
-1

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

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

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

下面是客户端功能:

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

现在,这里的getdata函数被调用,警报也来,但在服务器端方法没有被调用。 [我在调试模式下看过。]

+2

[Pagemethods在asp.net]的可能的复制(https://stackoverflow.com/questions/4313532/pagemethods-in -asp-net) – EdSF

+0

nope这不是重复的,因为这里调用了javascript,但不会在服务器端方法 –

+0

再次阅读。当天结束时,您正在使用客户端脚本向某个服务器资源发出请求。“Web Forms”具有'PageMethods'作为您可以使用的_option_,并且需要一些设置。 – EdSF

回答

1

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

ReloadData会在你的代码一个WebMethod后面,将是这个样子:

[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(); 
+0

有没有可能使用JavaScript? –

+0

@ s.k.Soni您使用JavaScript进行AJAX调用。 JavaScript代码在客户端浏览器中运行,而C#代码位于服务器上。 HTTP(AJAX)是这两种环境之间的通信方式。 – Pointy

+0

@ s.k.Soni,我已经更新了代码。你问是否可以在没有JQuery的情况下做到这一点? – w0051977

相关问题