13

MVC4の新しい「バンドルとミニファイ」を使用しようとしています。

IEの条件付きコメントについては、私はまだ古い方法でそれを行っています:<!--[if lt IE 9]><link href=.../><![endif]-->または<!--[if lt IE 9]>@Styles.Render("~/foo")<![endif]-->、自動デバッグ/リリース処理を取得していないようです。

これを行うための組み込みの方法はありますか?他の人はこれをどのようにやっていますか?

編集:また、レンダリングされた出力内にタグ
を含めることができると便利です(フォールバックに使用されます)。<noscript>

4

3 に答える 3

15

Bundlesより良い方法が見つかるまで、次のメソッドを持つというアダプター クラスを作成しました。

public static IHtmlString RenderStylesIe(string ie, params string[] paths) {
  var tag = string.Format("<!--[if {0}]>{1}<![endif]-->", ie, Styles.Render(paths));
  return new MvcHtmlString(tag);
}

スクリプトにも同様の方法があります。ビューはそれらを次のように呼び出します。

@Bundles.RenderStylesIe("lt IE 9", "~/Content/foo")
@Bundles.RenderScriptsIe("lte IE 7", "~/Scripts/bar")

もっと良い方法があれば、アドバイスをいただければ幸いです。

于 2012-10-12T21:37:26.403 に答える
5

間もなくリリースされる 1.1-alpha1 アップデートでは、スクリプト/スタイル ヘルパーを使用して独自のタグ フォーマットを行うことがサポートされます。

デフォルトで次のように設定されている新しい DefaultTagFormat プロパティがあります。

"<script src="{0}"></script>"

タグ形式も取り込む RenderFormat メソッドもあります。これらを使用すると、レンダリングをもう少し制御できるはずです。あなたがやろうとしていることは、フォーマット文字列で可能ですか?

于 2012-10-16T21:30:10.633 に答える
-2

私が見つけた別の方法は次のとおりです: https://coderwall.com/p/5zqvkg

それは好みの問題です

(上記のコードは今でも気に入っています。よりクリーンで読みやすくなっています。

@Bundles.RenderStylesIe("lt IE 9", "~/Content/foo")
@Bundles.RenderScriptsIe("lte IE 7", "~/Scripts/bar")

)

于 2014-09-27T09:29:52.293 に答える