MVC4如何检测移动浏览器?

10

我刚刚按照Scott Hanselman的教程在MVC4中制作可切换的网站

由于我没有VS2102,所以我使用Opera移动模拟器进行测试。

在模拟器中渲染我的页面时,Request.Browser.IsMobileDevice为false,尽管它仍然呈现移动视图。

enter image description here

我的问题是:
  • 为什么/如何MVC4决定呈现移动视图?它似乎没有查看Request.Browser.IsMobileDevice
  • View Switcher会在真正的移动设备上显示吗?
编辑:

我想我意识到了我的错误:

为了使其与Opera模拟器配合工作,我添加了一个MobileDisplayMode,如此描述:ASP.NET MVC 4移动功能

这似乎可以正确地渲染,但Request.Browser.IsMobileDevice不起作用。对于ViewContext.HttpContext.GetOverriddenBrowser()。IsMobileDevice也是如此。有办法解决这个问题吗?


EHMAGEHD,这篇文章来自未来!!!我正在使用Opera移动模拟器进行测试,因为我没有VS2102。 :) - Jamiec
我看到你提到你正在使用Opera Mobile进行测试。你也可以使用WebMatrix来模拟iPhone、iPad、WP7等设备,或者在Chrome中按Ctrl Shift + i然后选择Settings > Override,并选择你想要发送请求的UserAgent。 - Jive Boogie
1
哈哈,是的,你抓住我了... 我正在处理一个传统的 MVC4 应用程序,Microsoft 修复了 MVC11 中的浏览器检测 :) - woggles
在Chrome中更改用户代理时,它根本不会呈现移动视图。 - woggles
1个回答

5

MVC通过将HTTP请求头与C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers中的浏览器配置文件进行匹配来识别移动设备。

ASP.NET MVC的浏览器检测方法并不是很好,因此我建议使用某种DDR。


我有一个问题,是否可以通过browserCaps.config覆盖此配置?注意:我正在使用51度.mobi。 - nirupam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接