ScriptManager.GetCurrent ( Page ).IsInAsyncPostBack 在运行时抛出错误

Posted

技术标签:

【中文标题】ScriptManager.GetCurrent ( Page ).IsInAsyncPostBack 在运行时抛出错误【英文标题】:ScriptManager.GetCurrent ( Page ).IsInAsyncPostBack throws an error at runtime 【发布时间】:2011-07-03 18:38:34 【问题描述】:

几个小时后,我被困在一个看似非常愚蠢的问题上,我无法继续前进。

基本上,如果我尝试在 ASP.NET Web 表单页面的任何事件处理程序(即在 Page_Load)评估以下内容:

ScriptManager.GetCurrent ( Page ).IsInAsyncPostBack

我总是收到以下错误:

“System.Web.UI.IScriptManager”不包含“GetCurrent”的定义,并且找不到接受“System.Web.UI.IScriptManager”类型的第一个参数的扩展方法“GetCurrent”(您是否缺少using 指令还是程序集引用?)

但是,如果我在任何嵌入式 UserControls 事件中评估相同的值,我确实会返回一个布尔值。

我错过了一些非常基本的东西吗?

【问题讨论】:

这是什么版本的 .Net?在 4.0 中甚至没有 IScriptManager 接口,这似乎是 2.0 的东西。如果您不使用 .NET 2.0,这可能是库版本冲突吗?检查您的程序集参考。 【参考方案1】:

您使用的是 AjaxControlToolkit-ScriptManager 吗? 我有时在调试 IsInAsyncPostBack 值时也会遇到问题。

改变

ScriptManager.GetCurrent(Page).IsInAsyncPostBack

AjaxControlToolkit.ToolkitScriptManager.GetCurrent(Page).IsInAsyncPostBack 

【讨论】:

这就是我最终做的事情,它也为我解决了这个问题。 我最终使用了 System.Web.UI.ScriptManager.GetCurrent(Me.Page).IsInAsyncPostBack (添加以希望对其他人有所帮助)【参考方案2】:

检查并确保您没有将 ScriptManager 控件命名为“ScriptManager”。如果您这样做了,编译器将尝试使用该控件,而不是调用 ScriptManager 类上的静态 GetCurrent 方法。

【讨论】:

谢谢,可惜不是。

以上是关于ScriptManager.GetCurrent ( Page ).IsInAsyncPostBack 在运行时抛出错误的主要内容,如果未能解决你的问题,请参考以下文章