从类调用页面

时间:2014-05-15 10:56:01

标签: c# javascript asp.net class static-methods

我有这个代码从我的服务器显示一个javascript消息警告框,它工作正常,但现在我想将整个代码移动到一个静态类,以便我可以从我的应用程序中的任何地方调用它,而无需复制再次编码到该页面,这是我现在使用的功能:

private static void MessageBox(string msg)
{
    Label lbl = new Label();
    lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>";
    Page.Controls.Add(lbl);
}

现在我希望能够在我在我的应用程序中创建的任何webform上从静态类调用此函数。

这是我在“Page.Control.Add(lbl)”上加下划线的错误: enter image description here

1 个答案:

答案 0 :(得分:3)

在代码隐藏中PagePage类型的属性(我知道这很混乱!)所以它引用了Page类的一个实例。对于此范围之外的静态方法,它只知道类Page,因此编译器会看到您尝试调用名为Controls的静态属性,该属性在Page类中不存在所以以你的方式抛出错误。

您需要将Page实例传递给MessageBox方法:

public static void MessageBox(Page page, string msg)
{
    Label lbl = new Label();
    lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>";
    page.Controls.Add(lbl);
}