我正在开发一个.NET MVC3应用程序。
是否有一种很好的方法可以检测用户是否在视图中使用移动浏览器(使用RAZOR)。 如果是移动浏览器,我想要区分显示逻辑。
谢谢!
答案 0 :(得分:69)
MVC3在Request.Browser对象中公开IsMobileDevice标志。
因此,在您的剃刀代码中,您可以查询此变量并相应地进行渲染。
例如,在您的视图中(剃刀):
@if (Request.Browser.IsMobileDevice) {
<!-- HTML here for mobile device -->
} else {
<!-- HTML for desktop device -->
}
答案 1 :(得分:21)
内置的浏览器检测功能不再保持最新。请查看Scott Hanselman's blog - 有关详细信息,请参阅底部的“更多信息”部分。
从那篇文章:
自那篇文章发布以来,发布并支持原始移动设备浏览器文件(MDBF)的爱尔兰Live.com团队已经停止生产它。移动浏览器设备数据的最佳来源是WURFL(这是MDBF从中获取的地方之一。)
我建议您查看51Degrees.mobi以获得更准确的检测。另请参阅Hanselman引用的Steve Sanderson blog,了解如何在MVC3中实现此功能。
答案 2 :(得分:0)
我使用此方法(适合我工作)
if (eDurar.MobileDetect.DeviceType.Any(m => Request.UserAgent.Contains(m)))
{
Layout = "~/Views/Shared/_mobileLayout.cshtml";
@Html.Partial("mobileIndex");
}
else
{
Layout = "~/Views/Shared/_Layout.cshtml";
@Html.Partial("desktopIndex");
}
我建议您使用响应式引导程序,避免移动特定页面更好