ili*_*ian 6 css asp.net app-themes
我编写了一些有助于js文件版本化的代码.本质上,它围绕当前脚本管理器旋转,并使用文件的md5哈希附加javascript文件路径.所以
<script src="../Javascript/Navigation.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
变
<script src="../Javascript/Navigation.js?md5=70D2B4D1F236C7E340D9152B9E4102C3" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我认为这是一个相当普遍的事情(或其变体).我正在努力做的是拿起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);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过将以下内容保存为App_Browsers文件夹中的*.browser文件来插入它:
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page"
adapterType="PageAdapter" />
</controlAdapters>
</browser>
</browsers>
Run Code Online (Sandbox Code Playgroud)
总的来说,我认为控制适配器是一种强大的类似AOP的机制,用于将行为注入控件/页面生命周期; 他们几乎完全被忽视,转而支持传统的分类.
| 归档时间: |
|
| 查看次数: |
3277 次 |
| 最近记录: |