CS0120: 非静态的字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:56:58
CS0120: 非静态的字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用
悬赏分:0 - 离问题结束还有 12 天 10 小时
源码如下:
public class Dialog //对话框类
{
public Dialog()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public static void ShowDialog(string strDialog) //显示对话框
{
出错行-> Page.ClientScript.RegisterStartupScript(this.GetType(), "",
"<script language='javascript' type='text/javascript'>alert('" + strDialog + "')</script>");
}

}

出错:
CS0120: 非静态的字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用
问题补充:public static void ShowDialog(string strDialog) //显示对话框
{
出错行-> Page.ClientScript.RegisterStartupScript(this.GetType(), "",
"<script language='javascript' type='text/javascript'>alert('" + strDialog + "')</script>");
}
这个函数我在.aspx.cs文件

你这里的this.GetType(), this指什么呢?
ClientScript这些东西在类里写和aspx.cs里是不一样的,同样的问题包括request\sesseion等等

你可以这样做
public static void ShowDialog(string strDialog,Page _page) //显示对话框
{
Page.ClientScript.RegisterStartupScript(_page.GetType(), "",
"<script language='javascript' type='text/javascript'>alert('" + strDialog + "')</script>");
}

----------
这里的app_code下面的类方法不用static,只要在index.aspx.cs里继承就可以使用
你写成这样吧
protected void MsgBox(string message)
{

ClientScriptManager cs = Page.ClientScript;
String csname1 = "PopupScript";
Type cstype = this.GetType();

if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1 = "alert('" + Server.HtmlEncode(message) + "');";
cs.RegisterStartupScript(cstype, csn