我比较过用手机访问正常的时候的userAgent和访问显示桌面版的时候的UserAgent是一样的。
有一个特点是刚发布或重启的时候,手机访问或者在chrome模拟移动端访问都是正常的,过了几个小时候后再访问就变成桌面版了,然后就一直是桌面版的。
好像是RenderBody里的视频有问题,比如首页,有时候RenderBody输出的是Home.cshtml,有时候输出的是Home.Mobile.cshtml
有可能是IIS7的问题吗? 请问如何升级到IIS7.5?
将Windows Server 2008升级至Windows Server 2008 R2,可以直接升级,不用重装系统
在网上发有人提出和我一样的问题:
http://forums.asp.net/t/1824033.aspx/2/10?MVC+4+RC+Mobile+View+Cache+bug+
这个问题是mvc4的一个bug,视图缓存bug,在移动视图访问过,在刚15分钟过期时如果有人先访问桌面视图,则以后移动端访问就显示桌面端的视图。
微软提供了一个临时的解决方案:
http://www.nuget.org/packages/Microsoft.AspNet.Mvc.FixedDisplayModes
再提代其它几个解决方案:
在global.asax中以下代码中加入
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
//以下是新添加的代码
//第一种方法
ViewEngines.Engines.OfType<RazorViewEngine>().First().ViewLocationCache =
DefaultViewLocationCache.Null;
//第二种方法
ViewEngines.Engines.OfType<RazorViewEngine>().First().ViewLocationCache =
new DefaultViewLocationCache(Cache.NoSlidingExpiration);
}