从ASPX代码背后调用Web方法

时间:2011-09-06 20:20:23

标签: c# asp.net webmethod

我正试图找出一种方法,我可以从另一个ASPX Code Behind页面调用Web方法(位于aspx页面后面的代码中作为公共静态方法)。

这是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()相当复杂,出于我无法控制的原因,无法将其移动到其他地方或目前重建。

如何从其他页面的代码中使用上面的Web方法?

我已尝试实例化其他页面(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应用程序)。

感谢任何帮助!

1 个答案:

答案 0 :(得分:5)

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

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