如何检测移动(而非平板电脑)请求?

时间:2012-09-10 05:23:34

标签: asp.net-mvc c#-3.0

如何在ASP.NET MVC申请中检测移动设备(但不是平板电脑)请求?

2 个答案:

答案 0 :(得分:2)

在ASP.NET中,您可以使用Request.Browser.IsMobileDevice属性和Request.UserAgent轻松检测移动设备请求。

以下代码检查IsMobileDevice属性并重定向到特定于移动设备的页面:

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Browser.IsMobileDevice)
    {
        Response.Redirec("~/default_mobile.aspx");          
    }
}

如果您从移动浏览器请求“default.aspx”,它将重定向到default_mobile.aspx页面

Read here他们在那里详细解释

有时这可能不适用于某些平板电脑

为此,您必须使用Request.Browser.ScreenPixelsWidth并验证各种屏幕尺寸的值以实现此目的。我认为这将是在服务器端完成它的唯一方法

如果你想信任客户端javascript。有各种各样的脚本可以做到这一点。

选中此Detect Mobile Browsers,这也可能对您有所帮助。

答案 1 :(得分:0)

正如其他人说的那样,你可以使用Request.Browser.IsMobileDevice

在您的控制器或布局页面中

<强>剃刀即可。您可以在布局页面中执行此操作,它将根据设备进行更改,例如

@if (Request.Browser.IsMobileDevice) {

}
单个视图的

控制器,例如

public ActionResult Index()
{
    if (Request.Browser.IsMobileDevice)
         return View("Index.Mobile");
    else
         return View();      
}

另一种方法是使用名为51Degrees.mobi的API。我个人没有使用它,但它看起来非常好而且非常完整:http://51degrees.codeplex.com/wikipage?title=MVC

此外,这还有一些关于移动检测主题的更多信息。 http://www.asp.net/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application