微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么ASP.NET MVC中的移动视图在不同的服务器上显示不同?

我正在使用新的ASP.NET MVC 4测试版,并且正在尝试创建一个主要与响应式设计相关的系统,但是对于一个特定视图,我正在使用移动视图来呈现移动设备的特定视图。

我的结构只是我有一个Show.cshtml,之后我有一个Show.mobile.cshtml。

如果我通过IIS Express从我的开发机器上提供我的网站,这个视图可以正确显示iPad,iPhone,Android手机和手机Opera,如果我在我的开发机器上进行本地发布到IIS 7.5,它也可以正常工作。

当我们部署到实时服务器时,我们已经尝试在两个不同的服务器上部署问题。那么行动检视只会提供给iPhone,没有其他行动装置。这是一贯的。我们的服务器设置都是Windows 2003 / IIS6和Windows 2008 R2 / IIS7.5,它们在两者上都是一样的,只有iPhone被提供给移动视图。

这可能是什么原因?

我没有在global.asax中添加任何定制的东西。

UPDATE

经过一些更多的研究,我看起来显然displayMode和移动视图的认行为取决于Request.browser.IsMobileDevice标志。该标志反过来似乎依赖于.NET Framework文件夹的Config / browsers文件夹中的.browser文件

在我的开发机器上,我具有不同于我部署到的服务器上的.browser文件。到目前为止,我已经尝试在网络应用程序的App_browsers-文件夹中部署我的机器上的那些,但是这并不能解决我的问题。可能这样吗?

解决方法

这不是你的问题的完整答案,但我认为这仍然有帮助。

ASP.NET在我的经验中不是很好地解决浏览器功能。所以,我可以建议看看51Degrees.Mobi Foundation.史蒂文·桑德森有一个很好的博客文章

Using 51Degrees.Mobi Foundation for accurate mobile browser detection on ASP.NET MVC 3

我不完全确定,但您应该可以轻松地将其挂钩到ASP.NET MVC 4 displayMode基础架构。这是一个很好的资源:

51Degrees.mobi and MVC4

原文地址:https://www.jb51.cc/aspnet/252510.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐