Asp.net 一个页面上只能存在一个scriptmanager实例

Asp.net 一个页面上只能存在一个scriptmanager实例,asp.net,asp.net-ajax,Asp.net,Asp.net Ajax,我设计了一个ASP.NET web usercontrol,使用maskeditor和scriptmanager,我总是在运行时获得一个对象引用,而不是设置为对象异常的实例 Stacktrace是: [InvalidOperationException:只能将ScriptManager的一个实例添加到页面。] System.Web.UI.ScriptManager.OnInit(EventArgs e)+384613 System.Web.UI.Control.InitRecursive(Con

我设计了一个ASP.NET web usercontrol,使用maskeditor和scriptmanager,我总是在运行时获得一个对象引用,而不是设置为对象异常的实例

Stacktrace是:

[InvalidOperationException:只能将ScriptManager的一个实例添加到页面。] System.Web.UI.ScriptManager.OnInit(EventArgs e)+384613 System.Web.UI.Control.InitRecursive(Control namingContainer)+333 System.Web.UI.Control.InitRecursive(Control namingContainer)+210 System.Web.UI.Control.InitRecursive(Control namingContainer)+210 System.Web.UI.Control.InitRecursive(Control namingContainer)+210 System.Web.UI.Control.InitRecursive(Control namingContainer)+210 System.Web.UI.Control.InitRecursive(Control namingContainer)+210 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+378

这是什么原因?
谢谢

我认为您的错误与“只能将ScriptManager的一个实例添加到页面”有关


检查页面上是否有多个ScriptManager

您在哪里声明ScriptManager-在UserControl、承载控件的页面或母版页中

我建议(如果可以-主要警告是服务器上安装了.NET 3.5)在母版页中定义ScriptManager(如果不使用母版页,则为页面级),然后在用户控件中使用:

当父元素中已定义ScriptManager控件时,启用内容页和用户控件等嵌套组件向页添加脚本和服务引用

编辑以添加:

如果您不能使用ScriptManagerProxy,请查看AJAX控件工具包中的-它为您提供了许多.NET 3.5 ScriptManager的功能,而无需使用3.5,包括.GetCurrent方法:

ScriptManager scriptManager = ToolkitScriptManager.GetCurrent(Page);

if (null != scriptManager) {
  // Create a new ToolkitScriptManager and add it to the page.
}

或者,您可以自己执行该查找,通过迭代页面的控件集合来查找ScriptManager实例。

如果您使用的是Telerik控件,则ScriptManager无法工作


我们可以使用Telerik控件或ScriptManager

抱歉,是的,当前的例外实际上就是这样,但是如果我取出ScriptManager,我会出现“对象引用未设置为对象实例”错误。好吧,也许您在母版和内容页上遇到问题,如下面的@Zaph评论所示?