gpt4 book ai didi

asp.net-mvc - asp.net mvc 4 中移动设备的显示模式和 ipad 的桌面 View

转载 作者:行者123 更新时间:2023-12-01 23:19:04 24 4
gpt4 key购买 nike

您好,我有一个 MVC 3 应用程序,最近转换为 MVC 4 并添加了移动 View 。我想添加移动设备的显示模式和平板电脑的桌面 View ,特别是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)
});

并按自定义设置输出缓存,如下所示

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 小时后,移动设备将获得几个网址的桌面 View 。存在不一致。

任何人都可以帮助我,我哪里错了。 我什至关闭了输出缓存仍然是同样的问题。

最佳答案

这是一个已知问题,我们最近发布了 MVC 4 的解决方法 NuGet 包:http://nuget.org/packages/Microsoft.AspNet.Mvc.FixedDisplayModes .

解决方法是简单地将此 NuGet 包安装到您的项目中。但是,如果您的应用程序自定义已注册 View 引擎的集合,则应确保引用

Microsoft.Web.Mvc.FixedRazorViewEngine

Microsoft.Web.Mvc.FixedWebFormViewEngine

而不是默认的 View 引擎实现。

关于asp.net-mvc - asp.net mvc 4 中移动设备的显示模式和 ipad 的桌面 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12254604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com