您好我有一个 MVC 3 应用程序,最近转换为 mvc 4 并添加了移动视图。我想为移动设备添加显示模式,并为 iPad 的平板电脑添加桌面视图(主要来自这里的流量)。
我的代码中有这样的
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode()
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0)
});
DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("Mobile")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("Mobile", StringComparison.OrdinalIgnoreCase) >= 0)
});
并设置输出缓存varybycustom,如下所示
public override string GetVaryByCustomString(HttpContext context, string custom)
{
string strUserAgent = context.Request.UserAgent.ToLower();
if (strUserAgent.Contains("ipad"))
{
return base.GetVaryByCustomString(context, custom);
}
if (Request.Browser.IsMobileDevice)
{
return "mobile";
}
return base.GetVaryByCustomString(context, custom);
}
我对移动设备和台式机使用相同的网址。
问题: 问题是在将应用程序部署到 azure 之后。1 小时后,手机获得几个 url 的桌面视图。存在不一致。
任何人都可以在我错的地方帮助我。我什至关闭了outputcache 仍然是同样的问题。