2

MVC4には、Request.Browser.IsMobileDeviceという組み込みのメソッドがあることに気づきました。これを使用して、リクエストがモバイルであるかどうかを確認し、コントローラーと/ mobile / indexのアクションにリダイレクトするにはどうすればよいですか?URLに含まれていたクエリ文字列とロケーションハッシュを引き継ぐ必要があります。これを行うための組み込みの方法はありますか?

4

1 に答える 1

5

通常、モバイルデバイスは同じモデルの異なる表現を必要とするだけなので、モバイルデバイスの別のコントローラーとアクションにリダイレクトすることは望ましくありません(コントローラーロジックを複製する必要はありません)。拡張機能(C#Razorビューの場合)を使用してビューを作成する場合.Mobile.cshtml、MVC4は、通常、モバイルデバイスにこのビューを使用します。

Homeたとえば、フォルダにこのビューがある場合

Index.cshtml

Homeこのビューをフォルダに追加します

Index.Mobile.cshtml

MVC4はIndex.Mobile.cshtml、モバイルデバイスとIndex.cshtml非モバイルデバイスでレンダリングされます。

とはいえ、モバイルデバイスに固有のことを行う必要がある場合もあります。たとえば、_Layout.cshtmlモバイルデバイス用に別のものが必要な場合は、_ViewStart.cshtmlファイルに次のように配置できます

@{
    if(Request.Browser.IsMobileDevice)
    {
        Layout = "~/Views/Shared/_Layout.Mobile.cshtml";
    }
    else
    {
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
}
于 2012-07-08T15:50:45.750 に答える