如何将媒体属性添加到asp.net webresource.axd HTTP处理程序的CSS链接HTML标签

StackOverflow https://stackoverflow.com/questions/2730637

ASP.NET Webresource.AXD HTTP处理程序用于提供嵌入DLL中的资源。

链接HTML标签由ASP.NET自动生成。

我想从第三方DLL中拦截一组嵌入式CSS的链接HTML标签的生成,并添加媒体属性。

总之:

我想将媒体属性添加到asp.net webresource.axd HTTP处理程序的链接HTML标签中。

所以这:

<link type="text/css" rel="stylesheet" href="/WebResource.axd?d=XXXXX" />

看起来这样:

<link media="screen and (min-device-width: 481px)" type="text/css" rel="stylesheet"
 href="/WebResource.axd?d=XXXXX" />

干杯

有帮助吗?

解决方案

有解决方法。首先,这样的链接正在添加到 Page的头。您的页面一定有 runat=”server” 在里面 <head> 自动样式表的标签。 IDE创建的页面自动具有此设置。因此,添加链接是一个 HtmlLink 控制类型。这个想法是通过控制 Page的标题,找到 HtmlLink 控制并设置必要的属性(甚至属性)。我将其包括在 Page_Load 事件:

Page.Header.Controls
    .OfType<HtmlLink>()
    .ToList()
    .ForEach(link =>
    {
        link.Attributes["media"] = "screen and (min-device-width: 481px)";
    });

在此之前,我有:

<head id="Header">
    <title></title>
    <link href="App_Themes/MyTheme/main.css" 
          type="text/css" 
          rel="stylesheet" />
</head>

结果之后是:

我知道,这用 Themes 安排 WebResource.axd 但是对于最后一个,结果将相同。

最新一件事:页面中可能还有其他链接。因此,认识会很好 我们的 链接(需要修改链接)。所以如果没有 id 属性您可以通过 href 属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top