什么填充ScriptResourceMapping?

时间:2017-12-21 19:52:35

标签: asp.net webforms

asp.net如何/在哪里填充System.Web.UI.ScriptManager.ScriptResourceMapping?当我调试一个未触及的空ASP.Net webforms项目(如果重要的是针对.NET 4.6.1)并在Application_Start(object sender, EventArgs e)的开头设置断点时,已经有15个定义:

Screenshot of definitions

调用堆栈没有告诉我在此之前运行了什么代码(只是说 [外部代码] )并且整个解决方案中引用ScriptManager的唯一位置在{ {1}}在我的断点之后调用,只添加一个定义。

我问的原因是我最近被带到另一个项目的故障排除,我发现由于某种原因,它有一个几乎空的ScriptResourceMapping,我最终从模板项目的调试器复制值并手动添加它们故障项目中的代码。我只是想更好地了解出了什么问题。

同样,这个问题是关于一个全新的webform项目如何填充BundleConfig#RegisterBundles()。这是项目的packages.conf。请注意,有一些 ScriptManager 包。也许这些包中的东西将定义加载到ScriptManager中。

ScriptResourceMapping

1 个答案:

答案 0 :(得分:0)

ScriptResourceMapping类(System.Web.UI)看起来像死路一条。

ScriptManager类看起来更有前途。它有ScriptResourceMapping 属性。下面的链接显示了如何创建可由ScriptManager对象引用的ScriptResourceDefinition对象。

“将以下代码添加到Application_Start事件中的Global.asax文件中。”

ScriptResourceDefinition myScriptResDef = new ScriptResourceDefinition();
myScriptResDef.Path = "~/Scripts/jquery-1.4.2.min.js";
myScriptResDef.DebugPath = "~/Scripts/jquery-1.4.2.js";
myScriptResDef.CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js";
myScriptResDef.CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.js";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", null, myScriptResDef);

然后有关于将scripts元素添加到脚本管理器的更多信息。

https://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.scriptresourcemapping(v=vs.110).aspx

我猜测.NET一旦看到包文件就会以类似的方式处理这个问题,但我(仍)不确切知道何时何地。 (在构建?)Hth。