如何在我的 ASP.Net 页面上从 Javascript 调用静态方法?

How do I call a static method on my ASP.Net page, from Javascript?

抱歉,如果这是一个简单的答案,但我似乎找不到这个(在 SO 或 Google 上)

我有一个 aspx 页面,有一个 GridView,每条记录都有一个按钮。

我需要做的是在每条记录上执行一些 Javascript,从基础页面 class 请求一些数据。 class 上的方法是静态的,所以我对该实例不感兴趣。

此外,我想在不进行回发的情况下调用此方法。可以这样做吗?如果可以,我该怎么做?

注意

我知道每个人总是想要代码,但实际上,我正在寻找可以放入 OnClientClick 事件中的片段。像这样:

<asp:Button id="myButton" 
    runat="server" 
    ... 
    OnClientClick='PageClass.UserMustConfirm()?confirm("Are you sure you want to continue?") : true ' />

就像评论中的其他人已经说过的那样,您将需要使用 Ajax 或 PageMethods...但我想澄清一些您可能对它在第一名.

在客户端中运行的代码与在服务器中运行的代码有明显的区别—​​—您无法直接从客户端代码调用服务器代码——怎么可能呢?相反,您需要向该代码 "lives" 所在的服务器发出请求,获取响应,并在客户端对其执行一些有意义的操作——这就是 PageMethods 所做的:它打开了一个方法作为 WebMethod 并让客户端代码无缝执行某些操作。

但你不应该那样做。

不要依赖基本上是古老的框架 (WebForms),而是考虑使用 jQuery 的 $.ajax(...)Promise 对象以更明确的方式为您完成此操作,与框架无关的方式。

简短回答:您不能直接 从运行的 JavaScript 调用 C#(至少在浏览器中)。

长答案:您可以使用Ajax发送服务器参数来调用C#代码并对返回的结果做一些处理。

希望对您有所帮助!