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