在我的 ASP.NET MVC 3 Web 应用程序中,我将覆盖自定义视图引擎中的视图名称,以呈现针对非平板电脑移动设备优化的不同视图。
我想要执行此视图覆盖的只是Request.Browser.IsMobileDevice
设备的本机显示宽度的准确值。
对于这个简单的用例,51degrees.mobi 感觉非常沉重和复杂。也许这只是我在尝试浏览 51degrees 网站上的所有示例和文档以获得简单实现的简单问题的答案时的挫败感。
如果没有 51 度,我确实得到Request.Browser.IsMobileDevice
和的值Request.Browser.ScreenPixelsWidth
。我注意到对于桌面浏览器,宽度始终为 640,Request.Browser.Capabilities["51Degrees.mobi"]
而ScreenPixelsWidth
. 考虑到实现的服务器端性质,我猜 Unknown 值更准确。
我的主要问题是:我的简单要求真的需要 51 度吗?
如果我不使用 51degrees,是否有一些特定的浏览器示例无法正确检测 IsMobileDevice 和屏幕宽度?例如,对于新 iPad 或最新的 Android 浏览器版本,内置的 .NET Request.Browser.IsMobile 和 ScreenPixelsWidth 值是否不准确或不存在?我的网站有大约 65% 的移动用户,其中许多使用带有 UP.Browser 等浏览器的蹩脚功能手机,因此正确使用移动设备有点重要。
如果我使用 51degrees,我是否需要一直深入到 Request.Browser.Capabilities["51Degrees.mobi"]?或者 51degrees 是否覆盖/更新 Request.Browser.IsMobileDevice 的值以与其对浏览器的评估同步?显然它不会覆盖 Request.Browser.ScreenPixelsWidth。
只要他们不建议 MVC 4 或不涉及 WURFL 等付费解决方案,我愿意接受“你做错了,这是更好的方法”的答案。