0

このカスタム displaymodeprovider で MVC 4 を使用します。「false」に設定しても、iPhoneではモバイルバージョンが返されますが、通常のバージョンのWebサイトを返したいです。助けてください

DisplayModeProvider.Instance.Modes.Insert(0, new
        DefaultDisplayMode("Mobile")
        {
            ContextCondition = (context => false)
        });

このコード内にブレークポイントを設定すると、モバイルバージョンが返されますが、呼び出します。

4

1 に答える 1

1

最終的に私は問題を理解しました

MVC 4 には、「モバイル」プレフィックスの独自のリダイレクトが既にあります。したがって、カスタム ロジックを使用するには、次のように、「Mobile」プレフィックスの DisplayModeProvider を削除する必要があります。

        var mobileModel = DisplayModeProvider.Instance.Modes.FirstOrDefault(a => a.DisplayModeId == "Mobile");
        if (mobileModel != null)
        {
            DisplayModeProvider.Instance.Modes.Remove(mobileModel);
        }

        DisplayModeProvider.Instance.Modes.Insert(0, new
        DefaultDisplayMode("Mobile")
        {
            ContextCondition = (context => <USE ANY YOUR CUSTOM LOGIC>)
        });

この回答は、自分の Web サイトを iPad、iPhone、または Android の両方のバージョンで利用できるようにしたい人にとって非常に役立ちます。たとえば、デバイスに表示する Web サイトのバージョンを Cookie ユーザーの選択に保存できます。

于 2012-11-13T13:07:20.510 に答える