1

ASP.NET MVC と razor ビューで開発されたオープン ソースの ASP.NET MVC ( nopcommerce ) または nopcommerce.com があります。たとえば、index.cshtml と Index.Mobile.cshtml がありますが、私はデスクトップとモバイルの両方のバージョンです。モバイル視聴の経験がなく、

Chrome や IE などのブラウザでモバイル ページを表示する方法について誰かが手がかりを提供してくれれば、非常にありがたいです。

4

2 に答える 2

1

サイトによるモバイル検出の方法に応じて、以下が必要になる場合があります。

  • ブラウザからの「ユーザー エージェント」文字列を微調整します。そのための多くのツール/プラグインがあります。
  • ある種のクッキーを設定する
  • 「モバイル ビューを使用する」がサイトで直接サポートされているかどうかを確認します (つまり、http://www.xbox.comの下部にそのようなリンクがあります)。
于 2013-07-22T21:19:12.107 に答える
1

MVC では、表示モードを宣言します

たとえば、上記のリンクでは、WP と呼ばれるモードを宣言しています。そのモードにアクセスするには、index.cshtml(通常モード) とindex.wp.cshtml(検出モード) があります。

それを取得したら、好きなものをほとんどテストして、好きなすべてのモードを設定できます

たとえば、私の /APP_Start/DisplayModeConfig.cs

public class DisplayModeConfig
{
    public static void RegisterDisplayModes(DisplayModeProvider provider)
    {
        // INFO: Allows to name views/partials/masters like viewname.iphone.cshtml, and MVC will choose this automatically

        // INFO: Lets remove the default "Mobile" mode, since it's pretty useless
        var mobileDefault = DisplayModeProvider.Instance.Modes.First(m => m.DisplayModeId == "Mobile");
        if (mobileDefault != null)
        {
            DisplayModeProvider.Instance.Modes.Remove(mobileDefault);
        }

        // INFO: Now add one that actually works
        provider.Modes.Insert(0,
            new DefaultDisplayMode("Mobile")
            {
                ContextCondition = (context => (!string.IsNullOrEmpty(context.GetOverriddenUserAgent()) && Regex.IsMatch(context.GetOverriddenUserAgent(), @"mobile|android|kindle|silk|midp", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)))
            });


        // INFO: Order from least to most important (since we insert at position 0)
        provider.Modes.Insert(1,
            new DefaultDisplayMode("Win8")
            {
                ContextCondition = (context => (!string.IsNullOrEmpty(context.GetOverriddenUserAgent()) && context.GetOverriddenUserAgent().IndexOf("Windows NT 6.2", StringComparison.OrdinalIgnoreCase) >= 0))
            });
    }
}

また、@Request.Browser.* には、@Request.Browser.IsMobileDevice、@Request.Browser.Version などの便利な機能がたくさんありますが、ほとんどは問題なく動作しますが、これらのヘルパーに依存する前にテストします。

于 2013-07-22T21:22:47.100 に答える