我正在尝试扩展ScriptManager
以简化处理具有多个资源文件的资源(例如,多个脚本文件以及css)。我的目标是,我可以向ScriptReference
添加一个Scripts
,并使其加载与该引用名称相关的多个资源。
我坚持的是,当使用不包含ScriptManager
参数的静态方法时,您的基本Page
如何知道如何处理这些内容?例如:
ScriptManager.ScriptResourceMapping.AddDefinition("someName", new
ScriptResourceDefinition { Path="/script/somescript.js"});
这为(我猜)任何活动脚本管理器为您调用它时正在运行的页面添加了一个定义。但与旧学校方法不同,如RegisterClientScriptBlock
,没有传递标识页面的参数。但是这些东西必须存储在ScriptManager
对象中,不是吗?那怎么知道呢?
我可以随时获得对活动的引用:
ScriptManager.GetCurrent(page);
但理想情况下,我会创建与Microsoft完全相同的新方法。我无法弄清楚如何实现像
这样的东西ScriptManager.ScriptResourceMapping.AddDefinition(string name,
ScriptResourceDefinition definition,
ResourceType type)
可以找出对象实例添加内容而无需添加Page参数。不知怎的,他们正在做......我怎么能?
答案 0 :(得分:8)
即使在静态上下文中,您也可以通过(Page)(HttpContext.Current.Handler)
获得页面引用。