gpt4 book ai didi

ASP.NET 如何从公共(public)静态方法调用 clientscript

转载 作者:行者123 更新时间:2023-12-01 11:03:07 24 4
gpt4 key购买 nike

我打算在公共(public)静态方法中使用以下 ClientScript 函数 (VS2010,C#),但它给了我一些错误(我想将它用于带有“_parent”目标的响应重定向

                ClientScript.RegisterStartupScript(GetType(), "Load", "<script type='text/javascript'>window.parent.location.href = '" + a + "'; </script>");

Error 37 An object reference is required for the non-static field, method, or property 'System.Web.UI.Page.ClientScript.get'

Error 38 An object reference is required for the non-static field, method, or property 'object.GetType()'

谢谢

最佳答案

您不能在 static methods 中使用实例属性 (ClientScript) 或方法 (GetType()) (基本上任何实例)。

删除 static 关键字,它应该可以工作:

public void SomeMethod()
{
ClientScript.RegisterSomeScript("Load",
"<script>....</script>");
}

评论后编辑:

或者如果您需要静态类中的方法是静态的,则将 Page 对象作为参数传递:

public static class ScriptRegistar
{
public static void RegisterSomeScript(Page page)
{
page.ClientScript.RegisterStartupScript("Load",
"<script>.........</script>");
}
}

用法(在页面代码隐藏内):

public void Page_Load(Object sender, EventArgs e)
{
ScriptRegistar.RegisterSomeScript(this);
}

旁注:ClientScript.RegisterStartupScript 有两个参数:脚本的键和脚本文本,因此那里不需要 GetType()

关于ASP.NET 如何从公共(public)静态方法调用 clientscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com