2

したがって、bundleconfig.cs を見ると、デバイス タイプに基づいてバンドルすることが許可されているはずです。唯一の問題は、それが App_Start にあるため、Request オブジェクトにアクセスできないことです。デバイスベースのバンドルを可能にする方法はありますか?

4

2 に答える 2

3

App_Startその時点ではアプリに対してリクエストが行われていないため、明らかに でリクエストにアクセスすることはできません。どのバンドルが利用可能BundleConfig.csかを宣言するだけなので、ビューで正しいバンドルを選択する必要があります。

この MVC 4 チュートリアルのサンプル コードを確認できます。

BundleMobileConfig.cs

public class BundleMobileConfig {
    public static void RegisterBundles(BundleCollection bundles) {
        bundles.Add(new ScriptBundle("~/bundles/jquerymobile").
            Include("~/Scripts/jquery.mobile-{version}.js"));

        bundles.Add(new StyleBundle("~/Content/Mobile/css").
            Include("~/Content/Site.Mobile.css"));

        bundles.Add(new StyleBundle("~/Content/jquerymobile/css").
            Include("~/Content/jquery.mobile-{version}.css"));
    }
}

_Layout.Mobile.cshtml

<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title </title>
    <meta name="viewport" content="width=device-width" />

    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
    @Styles.Render("~/Content/Mobile/css", "~/Content/jquerymobile/css")    
</head>
<!-- etc -->
于 2012-11-05T21:04:19.220 に答える
0

でサポートするすべてのデバイスのバンドルを作成しますBundleConfig。次に、ビューで、から派生したデバイスに基づいて適切なバンドルを使用しますRequest.Browser

于 2012-11-05T21:03:11.353 に答える