我将MVC 4与此自定义displaymodeprovider一起使用。即使我把它设置为“假”它仍然在iPhone上返回移动版本,虽然我想要返回该网站的常规版本。请帮忙
DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("Mobile")
{
ContextCondition = (context => false)
});
我在此代码中设置了断点并调用,但它仍然返回移动版本。
答案 0 :(得分:1)
最终我发现了问题
MVC 4已经有了自己的“移动”前缀重定向。所以要使用自定义逻辑,我们需要删除DisplayModeProvider的“Mobile”前缀,如下所示:
var mobileModel = DisplayModeProvider.Instance.Modes.FirstOrDefault(a => a.DisplayModeId == "Mobile");
if (mobileModel != null)
{
DisplayModeProvider.Instance.Modes.Remove(mobileModel);
}
DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("Mobile")
{
ContextCondition = (context => <USE ANY YOUR CUSTOM LOGIC>)
});
对于那些希望他们的网站可以在iPad或iPhone或Android两个版本中使用的人来说,这个答案非常有用,我们可以在coockie用户选择存储我们应该在他的设备中显示哪个版本的网站。