0

背景

我正在编写一个 MVC 4 / jQuery Mobile 网站。我有一个Header.cshtml这样定义的共享视图:

@model string

<div data-role="header" data-position="fixed">
    <a data-rel="back" href="javascript:history.back()">Go back</a>
    <h1>@Model</h1>
    @Html.ActionLink("Home", "Index", "Home", null, new
    {
        data_icon = "home",
        @class = "ui-btn-right jqm-home"
    })
</div>

我这样称呼:

@Html.Partial("Header", "Registration")

问题

以上在我的桌面浏览器中运行良好,但是当我使用 Mobilizer ( http://www.springbox.com/about/tools/ ) 进行测试时,它似乎history.back()不适用于手机。所以然后我想..好吧,总是有不止一种方法可以完成工作..所以我尝试了这个:

<a data-rel="back" href="@Request.UrlReferrer">Go back</a>

奇怪的是,这也不起作用,我不知道为什么。我猜这UrlReferrer是在浏览器中调用某些东西,而移动浏览器不支持它。不幸的是,我实际上无法测试该理论,因为 Mobilizer 似乎不允许我检查页面源。

无论如何,我需要一个解决方案..当然我可以停止使用这个通用共享视图并将其复制粘贴到任何地方,但不用说那会很糟糕......谁能告诉我如何解决这个问题,所以我可以重复使用我的标头代码吗?

编辑

起初我以为@DWolf 已经解决了这个问题。但现在我发现它没有。

我已经检查并确认 Mobilizer 不是问题所在。我通过测试不同的模拟器来做到这一点。本例中 ElectricPlum 的 iPhone 模拟器: http ://www.hanselman.com/blog/SimulatingAnIPhoneOrIPadBrowserForASPNETMobileWebDevelopmentWithWebMatrix2OrVisualStudio2012.aspx

所以,data-add-back-btn="true"也行不通。虽然 jQuery Mobile 的后退按钮内置功能不起作用,但这似乎很奇怪……那是什么?!?!?帮助!

4

1 回答 1

2

jquery mobile保持页面缓存,所以如果你从第1页翻到第2页,它会显示第2页,但它会在幕后继续到第1页

如果你添加

data-add-back-btn="true"

到你的页面

<div data-role="page" id="page2" data-add-back-btn="true" >

它将返回 1 页

于 2013-03-29T13:53:45.190 回答