ScriptManager不可访问。

4
我正在尝试从.dll文件中的.cs类调用在aspx页面上实现的js函数。但是,在.cs类中似乎不存在ScriptManager。基本上,.cs文件是我在项目中使用的dll的一部分。我需要从我的.dll文件中的.cs文件调用在aspx页面上实现的js函数。
在aspx页面上,js函数成功被调用,但是当我在.cs文件中尝试相同的代码时,它会显示“ScriptManager由于其保护级别而无法访问”的错误信息。
以下是我正在尝试的代码:
protected void MyMethod()
{
   ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "jsfunction();", true);
}

为什么相同的代码在 aspx 页面上可以成功运行,但在 .cs 类中却不行呢?


如果这只发生在您的网站上,请尝试在您的web.config中设置<trust level="Full" />。 - Azhar Mansuri
2个回答

1

ScriptManager.RegisterStartupScript接受Page或Control作为第一个参数。确保将当前页面传递给cs方法。

protected void MyMethod(Page page)
{
   ScriptManager.RegisterStartupScript(page, typeof(UpdatePanel), new Guid().ToString() , "jsfunction();", true);
}

然后在 aspx.cs 页面中使用以下代码进行调用:

MyMethod(this.Page);

那似乎解决了问题,但现在我面临另一个问题,我认为这不是这个问题的一部分。谢谢Akhil。 - Ibad Baig

1

好的,为了解决上述问题,我只是尝试了这段代码

System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "jsfunction();", true);

请注意在ScriptManager中使用完整的命名空间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接