首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么ASP.NET MVC中的移动视图在不同的服务器上显示不同?

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

Stack Overflow用户
提问于 2012-05-08 15:27:46
回答 2查看 1.7K关注 0票数 17

我正在使用新的ASP.NET MVC4Beta,并试图创建一个主要使用响应式设计的系统,但对于一个特定的视图,我使用移动视图来呈现移动设备的特定视图。

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

如果我通过IIS Express使我的站点在我的开发机器上可用,这个视图可以正确地显示在iPad、iPhone、安卓手机和移动Opera上,如果我在我的开发机器上本地发布到IIS7.5,它也同样有效。

当我们部署到实时服务器时,问题来了,我们已经尝试在两个不同的服务器上部署。那么移动视图将只提供给iPhones,而不是其他移动设备。这一直都是这样的。我们设置的服务器是Windows2003/IIS6和Windows2008R2/IIS7.5,它在这两种服务器上都是一样的,只有iPhone在移动视图中得到了服务。

这可能是什么原因造成的?

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

更新

经过进一步的研究,我发现DisplayMode和移动视图的默认行为依赖于Request.Browser.IsMobileDevice标志。该标志反过来似乎依赖于.NET框架文件夹的Config/Browsers-文件夹中的.browser文件。

在我的开发机器上,我的.browser文件与我部署到的服务器上的文件不同。到目前为止,我已经尝试将我机器上的浏览器部署到web应用程序的app _Browsers-文件夹中,但这并没有解决我的问题。这可能是我们要走的路吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-08 19:33:12

这并不是对你问题的完整回答,但我认为它仍然会有所帮助。

根据我的经验,ASP.NET不太擅长解决浏览器功能问题。因此,我可以建议您研究一下51Degrees.Mobi Foundation。Steven Sanderson在这方面有一篇很好的博客文章:

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

我不完全确定,但是您应该能够很容易地将其连接到ASP.NET MVC4 DisplayMode基础设施。这是一个很好的资源:

51Degrees.mobi and MVC4

票数 6
EN

Stack Overflow用户

发布于 2013-07-24 20:10:58

我认为我在下面给出的解决方案就是答案(它在短时间内有效),但过了一段时间后它仍然切换到了错误的视图。

像互联网的其余部分一样,我安装了51 Degrees from Nuget,它工作得很好,而且很容易设置

(下面的方法不适用于我,但可能适用于您) http://www.nuget.org/packages/Microsoft.AspNet.Mvc.FixedDisplayModes

看起来这是一个已知的错误:http://aspnetwebstack.codeplex.com/workitem/280?PendingVoteId=280

根据上面的codeplex链接,记住要确保这一点:

对于自定义已注册视图引擎列表的一小部分项目(例如,在Global.asax中),您应该确保引用的是Microsoft.Web.Mvc.FixedRazorViewEngine或Microsoft.Web.Mvc.FixedWebFormViewEngine,而不是核心运行时二进制

中附带的类

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10494419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档