Cómo añadir un atributo media a la etiqueta html CSS ENLACE para el ASP.NET WebResource.axd controlador HTTP

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

Pregunta

El ASP.NET WebResource.axd controlador HTTP se utiliza para servir a los recursos incrustados en la DLL.

La etiqueta enlace HTML se genera automáticamente por ASP.NET.

Me gustaría interceptar la generación del código de enlace HTML para un determinado conjunto de CSS incrustado de un tercero DLL y añadir un atributo de los medios de comunicación.

En resumen:

Me gustaría añadir un atributo de medios a la etiqueta de enlace HTML para el ASP.NET WebResource.axd controlador HTTP.

Así que esto:

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

Aparece así:

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

Saludos

¿Fue útil?

Solución

Hay una solución. En primer lugar, los enlaces de este tipo se están agregando a la cabeza del Page. Su página debe tener runat=”server” en la etiqueta <head> para la inclusión automática de hojas de estilo. Las páginas creadas por el IDE tienen esta configuración de forma automática. Así, los enlaces que se añade es un tipo de control HtmlLink. La idea es iterar a través de los controles en la cabecera de Page, encontrar los controles y HtmlLink conjunto atributo necesario (o incluso atributos). Incluyo esto en el caso Page_Load:

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

Antes de esto tuve:

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

y después el resultado es:          

Lo sé, esto usos Themes insted de WebResource.axd pero para el último el resultado será el mismo.

La última cosa: no puede ser otro eslabones de la página. Por lo que sería bueno reconocer nuestros enlaces (los enlaces deben ser modificados). Así que si no hay ningún atributo id se podía reconocer por atributo href.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top