当我们在iPhone上时,常规视图不起作用?

时间:2012-11-13 12:25:27

标签: asp.net asp.net-mvc asp.net-mvc-3

我将MVC 4与此自定义displaymodeprovider一起使用。即使我把它设置为“假”它仍然在iPhone上返回移动版本,虽然我想要返回该网站的常规版本。请帮忙

DisplayModeProvider.Instance.Modes.Insert(0, new
        DefaultDisplayMode("Mobile")
        {
            ContextCondition = (context => false)
        });

我在此代码中设置了断点并调用,但它仍然返回移动版本。

1 个答案:

答案 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用户选择存储我们应该在他的设备中显示哪个版本的网站。