【问题标题】:How to call a web method which is in Root Page in ASP.NET using AJAX如何使用 AJAX 调用 ASP.NET 根页面中的 Web 方法
【发布时间】:2019-05-02 05:32:22
【问题描述】:

每个页面都需要调用一个函数,这个函数是一个Web Method。它现在在 Roor.Master 页面中,如何使用 AJAX 从所有页面调用它。由于有很多页面创建相同的函数或一个函数依次调用该函数是忙碌的。

【问题讨论】:

  • 您是否考虑过将功能公开为 WebAPI 端点或创建一个继承自 Page 的 BasePage 类,该类将包含该方法?从该页面继承的每个页面都将包含该方法。
  • @Marco ,是的,这是一个选项,但如果可能的话,我试图找到最短的解决方案。

标签: c# asp.net ajax


【解决方案1】:

如果您有在大多数或所有 WebForms 之间共享的通用功能,您总是可以创建一个基页面类,它继承自 Page。然后,从您的基类派生的所有其他页面都将包含该方法:

public class MyBasePage : Page
{
   [WebMethod]
   public static void DoStuff()
   {
       //Do your work here
   }
}

不,只要您需要该方法,您就可以从 MyBasePage 而不是 Page 继承您的 aspx 网络表单:

public partial class Foo : MyBasePage
{
   /*...*/
}

由于您还可以在同一个项目中同时使用 WebApi、MVC 和 WebForms,如果您不需要访问 Webforms 特定元素(如定义的变量),则通过简单的 ApiController 公开此功能也是可行的您的基本页或母版页。

【讨论】:

    【解决方案2】:

    页面渲染后没有物理存在的pagemethod。因此,jquery ajax 调用不可能对母版页中的页面方法进行。但是下面的代码让我印象深刻。

    http://weblogs.asp.net/yonggangmeng/archive/2008/11/13/how-to-invoke-pagemethods-in-masterpage.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 2021-08-17
      • 2014-03-09
      相关资源
      最近更新 更多