我有一些在继承自 UserControl 的类中使用 RegisterClientScriptInclude 的旧版 ASP.NET WebForms 代码。我想用一个新奇的Bundle替换对 RegisterClientScriptInclude 的多次调用。如何在已编译程序集的深处从我的捆绑路由解析捆绑 URL?
问问题
678 次
2 回答
1
假设您已经注册了捆绑包并且只想生成对捆绑包的引用。
最简单的方法是打电话
BundleCollection.ResolveBundleUrl(<path to bundle, i.e. "~/bundles/mybundle">).
请注意,不使用 Scripts 帮助器来渲染标签,您将始终获得对包的引用,当您直接调用 ResolveBundleUrl 时,不会有自动的非包功能。
于 2013-01-02T18:47:32.077 回答
0
试试这个方法:
private void RegisterJavaScriptBundle(string bundleIdent)
{
var bundleUrl = String.Format("~/bundles/{0}", bundleIdent);
var name = String.Format("Bundle{0}", bundleIdent);
if (ScriptManager.ScriptResourceMapping.GetDefinition(name) == null)
ScriptManager.ScriptResourceMapping.AddDefinition(name, new ScriptResourceDefinition { Path = bundleUrl });
ScriptManager.RegisterNamedClientScriptResource(this.Page, name);
}
比在用户控件的加载事件中调用它:
this.RegisterJavaScriptBundle("MyBundle");
这将使用内容哈希生成对脚本的引用:
<script src="/bundles/MyBundle?v=B6mdgLTYJ2gPQv_XxE07ACAAaNA6Lo4L_KxViWZE-CY1" type="text/javascript"></script>
于 2016-05-19T09:51:10.150 回答