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によって作成されたページには、この設定が自動的にあります。したがって、追加されるリンクはaです 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 しかし、最後の場合は結果が同じになります。

最新のこと:ページに別のリンクがあるかもしれません。したがって、認識するのは良いことです 私たちの リンク(リンクを変更する必要があります)。したがって、noがある場合 id あなたがそれらを認識することができる属性 href 属性。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top