0

我有一个 MVC 4 项目,它有一个在桌面或移动设备之间切换的视图。

这是您在桌面网站上时的视图...

<a href="@Url.Action("SwitchView", "Home", New With {.Mobile = True, .ReturnUrl = Request.Url.PathAndQuery})">Mobile View</a>

这是您在移动网站上时的视图...

<a href="@Url.Action("SwitchView", "Home", New With {.Mobile = False, .ReturnUrl = Request.Url.PathAndQuery})">Desktop View</a>

这是调用的动作...

Public Function SwitchView(Mobile As Boolean, ReturnUrl As String) As RedirectResult

    If Request.Browser.IsMobileDevice = Mobile Then
        HttpContext.ClearOverriddenBrowser()
    Else
        HttpContext.SetOverriddenBrowser(If(Mobile, BrowserOverride.Mobile, BrowserOverride.Desktop))
    End If

    Return Redirect(ReturnUrl)

End Function

在 iPhone 5 和 iOS 6 上运行完美。我可以从移动视图切换到桌面视图,然后再次切换回移动视图。

在带有 iOS 4.1 的 iPhone 3 上,它不起作用。它最初更正显示移动视图,我可以正确切换到桌面视图,但我无法切换回移动视图。

我试过用...替换动作

Public Function SwitchView(Mobile As Boolean, ReturnUrl As String) As RedirectResult

    HttpContext.SetOverriddenBrowser(BrowserOverride.Mobile)

    Return Redirect(ReturnUrl)

End Function

这没什么区别。我的用户代理字符串如下...

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-gb) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7

如果我在 IE 10 中强制我的用户代理字符串是这样的,它工作得非常好,所以我认为这是与检测用户代理相反的某种 iPhone 问题。

任何人都知道为什么切换回移动视图不起作用?

4

1 回答 1

0

发布后 30 分钟我意识到了这个问题。你会相信它不能仅仅因为我没有在我的 iPhone 上正确设置日期!

于 2013-09-17T13:43:42.627 回答