1

MVC サイトがあり、jquery モバイルで最適化されたモバイル ビューを追加しています。すべてのコントローラーとモデルは同じままです。

ビューを返す典型的なコントローラーがあるとしましょう。

    public virtual ActionResult CustomerProfile()
    {                
       return View(CurrentCustomer);
    }

IsMobileView == trueというセッション変数が設定されているかどうかを確認するために何かを確認したいのですが、そうであれば、同じビュー名を返すようにします... aspxファイル名にサフィックス「_Mobile」が付いている場合を除きます。

したがって、上記の場合、属性 [SupportsMobile] でメソッドをデコレートするとします。セッション変数が設定されている場合、ビューとして「CustomerProfile_Mobile.aspx」が使用されます。[SupportsMobile] でない場合、またはセッションがモバイル モードに設定されていない場合は、通常どおり CustomerProfile.aspx を返す必要があります。

これは、条件が正しければ CustomerSearch_Mobile.aspx を返す構文return View("CustomerSearch", model)でも機能する必要があります。

このチェックを入れるにはどうすればよいですか?もちろん、コントローラーでさまざまなアクション イベントをオーバーライドできますが、ビューが読み込まれている場所をインターセプトする必要があります。

前もって感謝します!ジェームズ。

4

1 に答える 1

2

これにはSessionを使用する必要はありません。この目的には、DisplayModeProviderまたはその他の最新の APIを使用する必要があります。ASP.NET チーム51Degreesから多くの情報があります。

ASP.NET を使用したモバイル アプリとサイト

見て、あなたの要求に合った建築オプションを見つけてください!

于 2013-09-16T19:24:39.267 に答える