【发布时间】:2012-05-08 07:27:46
【问题描述】:
我正在使用新的 ASP.NET MVC 4 beta 并尝试创建一个主要适用于响应式设计的系统,但对于一个特定的视图,我使用移动视图来为移动设备呈现特定的视图。
我的结构很简单,我有一个 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 中添加任何自定义内容。
更新
经过更多研究,我似乎很清楚 DisplayMode 和移动视图的默认行为取决于 Request.Browser.IsMobileDevice 标志。反过来,此标志似乎依赖于 .NET Framework 文件夹的 Config/Browsers 文件夹中的 .browser 文件。
在我的开发机器上,我的 .browser 文件与我部署到的服务器上的文件不同。到目前为止,我已尝试将我的机器上的那些部署在 Web 应用程序的 App_Browsers 文件夹中,但这并没有解决我的问题。这可能是要走的路吗?
【问题讨论】:
-
你试过吐出你的用户代理字符串吗?我想知道 IIS 是在搞乱它还是以不同的方式解决它。
-
在我看来,DisplayMode 的默认实例取决于框架文件夹的 Config\Browsers 文件夹中定义的浏览器。更多的研究表明,这些在不同的机器上有所不同。这是通过 Wep Platform Installer 更新的东西吗?
标签: asp.net asp.net-mvc mobile asp.net-mvc-4