Skip to main content
 首页 » 编程设计

c#之从后面的 ASPX 代码调用 Web 方法

2024年02月03日30daizhj

我正在尝试找出一种方法,可以从另一个 ASPX 代码隐藏页面调用 Web 方法(位于 aspx 页面代码隐藏中的公共(public)静态方法)。

这是Page A.aspx的隐藏代码

public partial class PageA : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    // other code not relevant is here   
    } 
 
    [WebMethod(true)] 
    public static string GetStringInfo() 
    { 
         // do some stuff here to build my string 
         // return string 
    } 
} 

在页面 B 上,我需要能够在页面加载或某些其他事件期间调用 GetStringInfo() 以获取信息。 GetStringInfo() 相当复杂,由于我无法控制的原因,目前无法移动到其他地方或重建。

如何从另一个页面后面的代码中使用上面的网络方法?

我已经尝试实例化另一个页面 (PageB) 的副本,例如:

public partial class PageB : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
       PageA page = new PageA(); 
       page.GetStringInfo();         
    } 
} 

这里的问题是因为它是动态编译的,所以我没有一个简单的命名空间来引用和访问。我试过添加一个,但它忽略了它。

此项目基于 .net 3.5、C#,并且是一个网站项目(不是 Web 应用程序)。

感谢任何帮助!

请您参考如下方法:

如果 GetStringInfo 方法是静态的,则不需要 PageA 的实例来调用它:

public partial class PageB : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
       string info = PageA.GetStringInfo();         
    } 
}