【问题标题】:What populates ScriptResourceMapping?什么填充 ScriptResourceMapping?
【发布时间】:2017-12-21 19:52:34
【问题描述】:

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

调用堆栈没有告诉我在此之前运行了哪些代码(只是说 [外部代码])并且整个解决方案中唯一引用 ScriptManager 的地方是 BundleConfig#RegisterBundles()在我的断点之后调用,只添加一个定义。

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

同样,这个问题是关于一个全新的网络表单项目如何填充ScriptResourceMappings。这是项目的packages.conf。注意有几个 ScriptManager 包。也许是这些包中的某些东西将定义加载到 ScriptManager 中。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.4.1.9004" targetFramework="net461" />
  <package id="AspNet.ScriptManager.bootstrap" version="3.0.0" targetFramework="net461" />
  <package id="AspNet.ScriptManager.jQuery" version="1.10.2" targetFramework="net461" />
  <package id="bootstrap" version="3.0.0" targetFramework="net461" />
  <package id="jQuery" version="1.10.2" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.AspNet.FriendlyUrls" version="1.0.2" targetFramework="net461" />
  <package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.2" targetFramework="net461" />
  <package id="Microsoft.AspNet.ScriptManager.MSAjax" version="5.0.0" targetFramework="net461" />
  <package id="Microsoft.AspNet.ScriptManager.WebForms" version="5.0.0" targetFramework="net461" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net461" />
  <package id="Microsoft.AspNet.Web.Optimization.WebForms" version="1.1.3" targetFramework="net461" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.7" targetFramework="net461" />
  <package id="Microsoft.Net.Compilers" version="2.1.0" targetFramework="net461" developmentDependency="true" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
  <package id="Modernizr" version="2.6.2" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net461" />
  <package id="Respond" version="1.2.0" targetFramework="net461" />
  <package id="WebGrease" version="1.5.2" targetFramework="net461" />
</packages>

【问题讨论】:

    标签: asp.net webforms


    【解决方案1】:

    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。

    【讨论】:

      猜你喜欢
      • 2020-02-14
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      相关资源
      最近更新 更多