サイト全体への切り替えリンクとモバイル リンクへの切り替えを作成したいと考えています。セッション変数を使用して、強制的にどちらかに移動させたくありません。ViewSwitcher Controller を使用して自動的に実行できるかどうかを知りたいです。
カスタムモバイル表示モードに使用しているものは次のとおりです
public class MobileDisplayMode : DefaultDisplayMode
{
public static readonly List<string> MobileList = new List<string>
{
"Android",
"Mobile",
"Opera Mobi",
"Samsung",
"HTC",
"Nokia",
"Ericsson",
"SonyEricsson",
"iPhone"
,"ipod"
, "symbian"
,"android"
,"windows ce"
,"blackberry"
,"palm"
,"opera mini"
};
public MobileDisplayMode()
: base("Mobile")
{
ContextCondition = (context => IsMobile(context, context.GetOverriddenUserAgent()));
}
private bool IsMobile(HttpContextBase context, string useragentString)
{
return context.Request.Browser.IsMobileDevice || MobileList.Any(val => useragentString.IndexOf(val, StringComparison.InvariantCultureIgnoreCase) >= 0);
}
}
これが私のビュー スイッチャー コードです。IsMobile プロパティについて心配する必要はありません。モバイル表示モードと同じように処理されます。
if (IsMobile == mobile)
{
HttpContext.ClearOverriddenBrowser();
}
else
{
HttpContext.SetOverriddenBrowser(mobile ? BrowserOverride.Mobile : BrowserOverride.Desktop);
}