如何在.NET MVC3应用程序中检测移动浏览器

时间:2011-03-08 13:25:45

标签: .net asp.net-mvc-3 razor

我正在开发一个.NET MVC3应用程序。

是否有一种很好的方法可以检测用户是否在视图中使用移动浏览器(使用RAZOR)。 如果是移动浏览器,我想要区分显示逻辑。

谢谢!

3 个答案:

答案 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");
}

我建议您使用响应式引导程序,避免移动特定页面更好