asp.net - 为什么 ASP.NET MVC 中的移动 View 在不同的服务器上显示不同?

标签 asp.net asp.net-mvc mobile asp.net-mvc-4

我正在使用新的 ASP.NET MVC 4 beta 并尝试创建一个主要适用于响应式设计的系统,但是对于一个特定的 View ,我使用移动 View 来为移动设备呈现特定的 View 。

我的结构很简单,我有一个 Show.cshtml,然后我有一个 Show.mobile.cshtml。

如果我通过 IIS Express 从我的开发机器上提供我的网站,此 View 将正确显示 iPad、iPhone、Android 手机和移动 Opera,如果我在我的开发机器上将本地发布到 IIS 7.5,它也可以正常工作。

当我们部署到实时服务器时,问题就来了,我们尝试在两个不同的服务器上进行部署。然后移动 View 将只提供给 iPhone,而不提供给其他移动设备。这是一贯如此。我们的服务器设置为 Windows 2003/IIS6 和 Windows 2008 R2/IIS7.5,两者的工作方式相同,只有 iPhone 提供移动 View 。

这可能是什么原因?

我没有为此在 global.asax 中添加任何自定义内容。

更新

经过更多研究,我似乎很清楚 DisplayMode 和移动 View 的默认行为取决于 Request.Browser.IsMobileDevice 标志。反过来,此标志似乎依赖于 .NET Framework 文件夹的 Config/Browsers 文件夹中的 .browser 文件。

在我的开发机器上,我的 .browser 文件与我部署到的服务器上的文件不同。到目前为止,我已经尝试将我的机器上的那些部署在 Web 应用程序的 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

关于asp.net - 为什么 ASP.NET MVC 中的移动 View 在不同的服务器上显示不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494419/

相关文章:

javascript - 服务器端重定向后未检测到 AngularJS ui-router 状态

asp.net-mvc - 如何在 iis 7.5 中使 Asp.net 网站脱机

css - 移动嵌入式 Youtube Iframe 无法播放

ASP.net 代码中包含不执行

c# - 从多列检索数据并在单列中显示

c# - IIS 中是否有 ASP.NET 网站管理工具?

javascript - 无法重置所选选项值

asp.net - 如何在 ASP.NET MVC 5.2.3 应用程序中的其他位置获取 IAppBuilder 的实例?

html - 正确缩放网站以在 iPhone 中显示

javascript - Ionic/Angular ui-router -a href 返回错误的 URL/内容