首页 > 解决方案 > 我们可以从 JavaScript Post 方法调用 aspx.cs 中的非静态函数吗

问题描述

我想详细了解这些调用是如何工作的。我知道我们可以在派生自System.Web.Services.WebService的 Web 窗体中声明一个服务类,并且可以在使用此[WebMethod(EnableSession = true)]声明函数后从 JavaScript 调用此服务类中的函数。

我的 aspx 页面及其后端 aspx.cs 文件仅包含公共类。有什么方法可以在这些aspx.cs文件和这些公共类中调用函数。静态和非静态函数都有。如果不是,它背后的原因是什么,如果是,那么它是如何工作的。

这篇文章是为了更深入地了解 Web 表单的结构和工作方式。

标签: javascriptc#asp.netwebforms

解决方案


方法必须是静态的。每个页面的静态方法完全相同。因为它是一个网页,所以多个用户可以访问它。如果您网站上的 4 个用户打开了页面,并且某个方法显示“Do x”,那么它必须能够为每个人做完全相同的事情。

例如,对页面方法的一个常见误解:您无法从静态 WebMethod/Page Method 访问页面上的控件。如果方法说“更新此控件”,应该在哪个页面上更新哪个控件?用户 1、2、3 还是 4?这是不可能知道的。

您必须将数据/信息从代码隐藏方法返回到调用该方法的 javascript 方法,然后从 javascript 方法更新页面的控件。

嗯。

更多的


推荐阅读