Как добавить атрибут мультимедиа в HTML-тег CSS LINK для ASP.NET WebResource.axd Http Handler - PullRequest
0 голосов
/ 28 апреля 2010

Обработчик ASP.NET WebResource.axd Http используется для обслуживания ресурсов, встроенных в библиотеки DLL.

HTML-тег LINK автоматически генерируется ASP.NET.

Я хотел бы перехватить создание HTML-тега LINK для определенного набора встроенных CSS из сторонних DLL и добавить атрибут media.

В итоге:

Я хотел бы добавить атрибут Media в тег html LINK для обработчика HTTP ASP.NET WebResource.axd.

Итак, это:

<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" />

Приветствия

1 Ответ

0 голосов
/ 29 апреля 2010

Есть обходной путь.Во-первых, такие ссылки добавляются в голову 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 insted из WebResource.axd, но для последнего результат будет таким же.

Последнее: на странице могут быть другие ссылки.Поэтому было бы хорошо узнать наши ссылки (ссылки необходимо изменить).Поэтому, если атрибута id нет, вы можете распознать его по атрибуту href.

...