我希望这对其他人有帮助,因为它让我发疯了。在在这里和其他地方找到各种信息后,我终于想出了以下修复方法。请注意,我不是在此处或其他任何地方动态创建此更新面板,并且大多数信息都与动态创建此控件有关,而我不是。
我在使用脚本管理器的母版页继承的页面上使用的 Web 用户控件内使用更新面板。我不知道这个组合是否是导致它的原因,但这就是我修复它的方法(在使用更新面板的 Web 用户控件内):
protected override void OnInit(EventArgs e)
{
ScriptManager sm = ScriptManager.GetCurrent(this.Page);
MethodInfo m = (
from methods in typeof(ScriptManager).GetMethods(
BindingFlags.NonPublic | BindingFlags.Instance
)
where methods.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel")
select methods).First<MethodInfo>();
m.Invoke(sm, new object[] { updatePanel });
base.OnInit(e);
}