我正试图找出一种方法,我可以从另一个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应用程序)。
感谢任何帮助!
答案 0 :(得分:5)
如果GetStringInfo
方法是静态的,则不需要PageA
的实例来调用它:
public partial class PageB : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string info = PageA.GetStringInfo();
}
}