我编写了一些有助于 js 文件版本控制的代码。本质上,它围绕当前脚本管理器旋转,并附加 javascript 文件路径和文件的 md5 哈希值。所以
<script src="../Javascript/Navigation.js" type="text/javascript"></script>
becomes
<script src="../Javascript/Navigation.js?md5=70D2B4D1F236C7E340D9152B9E4102C3" type="text/javascript"></script>
我认为这是相当常见的事情(或其变体)。我正在努力做的是拿起 app_themes 文件夹中的 css 文件并执行相同的操作。
如何进入并更改 css 链接?
您可以使用控制适配器将此行为巧妙地注入到页面中,如下所示:
public class PageAdapter : System.Web.UI.Adapters.PageAdapter
{
protected override void OnPreRender(System.EventArgs e)
{
foreach (var link in Page.Header.Controls.OfType<HtmlLink>().ToList())
if (link.Attributes["type"].Equals("text/css", StringComparison.OrdinalIgnoreCase))
if (link.Attributes["href"].Contains("/App_Themes/{0}/".Fill(Page.Theme), StringComparison.OrdinalIgnoreCase))
/* process link */
base.OnPreRender(e);
}
}
您可以通过将以下内容另存为来插入它*.浏览器文件在应用程序_浏览器 folder:
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page"
adapterType="PageAdapter" />
</controlAdapters>
</browser>
</browsers>
总的来说,我认为控制适配器是一种强大的类似 AOP 的机制,用于将行为注入到控件/页面生命周期中;它们几乎被完全忽略,而倾向于传统的子分类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)