Asp.net mvc 使用mvc的Jquery Mobile中的嵌套ListView

Asp.net mvc 使用mvc的Jquery Mobile中的嵌套ListView,asp.net-mvc,jquery-mobile,Asp.net Mvc,Jquery Mobile,我使用jQuery mobile在Asp.net mvc中创建嵌套列表视图,它有两个子视图,当我导航到第一个子视图1时,我可以返回主视图,但当我从子视图1导航到子视图2时,我不能返回子视图1,因为子视图1以某种方式为空 在我的布局页面中,我放置了这个脚本 <script> $(document).on('mobileinit', function () { $.mobile.page.prototype.options.addBackBtn = true;

我使用jQuery mobile在Asp.net mvc中创建嵌套列表视图,它有两个子视图,当我导航到第一个子视图1时,我可以返回主视图,但当我从子视图1导航到子视图2时,我不能返回子视图1,因为子视图1以某种方式为空

在我的布局页面中,我放置了这个脚本

 <script>
    $(document).on('mobileinit', function () {
        $.mobile.page.prototype.options.addBackBtn = true;
        $.mobile.page.prototype.options.backBtnText = "Back";
        $.mobile.page.prototype.options.backBtnTheme = "a";
        $.mobile.defaultPageTransition = "slide";

    });
</script>

$(文档).on('mobileinit',函数(){
$.mobile.page.prototype.options.addBackBtn=true;
$.mobile.page.prototype.options.backBtnText=“Back”;
$.mobile.page.prototype.options.backBtnTheme=“a”;
$.mobile.defaultPageTransition=“slide”;
});
主页为:

<script>

$(document).on('click', '[data-rel=back]', function (e) {
    e.preventDefault();
    var activepage = $.mobile.activePage.attr("id");

    if (activepage == "schedule")
        $.mobile.changePage($('#flight'), { transition: "slide", reverse: false });

    if (activepage == "dayFlight") {
        $.mobile.changePage($('#schedule'), { transition: "slide", reverse: false });
    }
});

$(文档)。在('click','data rel=back]'上,函数(e){
e、 预防默认值();
var activepage=$.mobile.activepage.attr(“id”);
如果(activepage==“计划”)
$.mobile.changePage($('#flight'),{transition:“slide”,reverse:false});
如果(activepage==“dayFlight”){
$.mobile.changePage($('#schedule'),{transition:“slide”,reverse:false});
}
});


    @foreach(模型中的var项目) {
  • }

子视图1是:

<div data-role="page" data-add-back-btn="true" id="schedule">
<div data-role="content">
    <ul id="scheduleListView" data-role="listview" data-inset="false" data-filter="false">
        @foreach (var item in Model)
        {
            <li>
                <a href="@Url.Action("DayFlights", new { from = from, to = to, date = item.Date })" data-direction="reverse" data-transition="slide">
                    <span class="lg">@Html.DisplayFor(modelItem => item.Day)</span>
                    <span class="lg number laligned">@Html.DisplayFor(modelItem => item.Date)</span>
                    <span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Nof</span>
                </a>
            </li>
        }
    </ul>
</div>

    @foreach(模型中的var项目) {
  • }

子视图2是:

<div data-role="page" data-add-back-btn="true" id="dayFlight">
<div data-role="content">
    <ul id="dayListView" data-role="listview" data-inset="true" data-filter="false">
        @foreach (var item in Model)
        {
            <li>
                <a href="@item.AgencyUrl" rel="external" data-ajax="false">
                    <span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Cap</span>
                </a>
            </li>
        }
    </ul>
</div>

    @foreach(模型中的var项目) {
  • }

我发现,当我导航到subview1时,mainview和subview1都在DOM中,但当我导航到subview2时,subview1将被subview2替换,因此这意味着当我在subview2时,subview1在DOM中不存在

在所有情况下,$.mobile.activePage.prev(“.ui页面”);returnnull,这就是我决定使用if子句来确定应该导航回哪个页面的原因,但是当我想从subview2导航回subview1时,它不起作用

我如何实现这个senario


提前感谢

您使用的是什么版本的jqm?您将
mobileinit
code放置在何处?使用
$.mobile.page.prototype.options.addBackBtn=true时,不需要添加
数据addback btn=“true”
。检查这个演示,我把mobileinit放在mvc项目的布局页面中,是的,正如你所说的,数据添加回btn=“true”不再需要了,只是我添加它进行测试,忘记了删除,我使用jqm版本1.3.0返回按钮将处理转换,你不需要额外的JS。
<div data-role="page" data-add-back-btn="true" id="dayFlight">
<div data-role="content">
    <ul id="dayListView" data-role="listview" data-inset="true" data-filter="false">
        @foreach (var item in Model)
        {
            <li>
                <a href="@item.AgencyUrl" rel="external" data-ajax="false">
                    <span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Cap</span>
                </a>
            </li>
        }
    </ul>
</div>