gpt4 book ai didi

c# - ScriptManager.GetCurrent 方法背后的原因

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:05 26 4
gpt4 key购买 nike

Asp.net 团队设计的脚本管理器使得每个页面只存在一个实例 (HttpHandler),我找不到他们扩展像 ScriptManager.GetCurrent 这样的方法的正当理由获取页面内的实例。为什么开发人员不能做

if(ScriptManager == null)
{
throw new Exception("The Below ajax control requires ScriptManager in the page");
}

最佳答案

我相信,因为除了页面的代码隐藏文件之外,可能还有其他地方可以访问实际的 ScriptManager。使用静态方法 GetCurrent(),您可以从代码中的任何位置(例如,从类库)访问当前上下文的 ScriptManager。 GetCurrent 的实现如下所示:

public static ScriptManager GetCurrent(Page page)
{
if (page == null)
{
throw new ArgumentNullException("page");
}
return page.Items[typeof(ScriptManager)] as ScriptManager;
}

因此,它只是访问 ScriptManager 实例的快捷方式。

当在母版页上定义 ScriptManager 时,您的代码将无法在内容页或用户控件中运行。

关于c# - ScriptManager.GetCurrent 方法背后的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297555/

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