繁体   English   中英

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

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

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

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

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

另外,我想不执行回发就调用此方法。 可以这样做,如果可以,我该怎么做?

注意

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

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

就像其他评论中已经说过的那样,您将需要使用Ajax或PageMethods ...但是我想清除一些关于它最初是如何工作的误解。

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

但是你不应该那样做。

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

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

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

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM