【问题标题】:ASP.NET Return View("Index"); Return to same tabASP.NET 返回视图(“索引”);返回同一选项卡
【发布时间】:2013-11-04 17:49:59
【问题描述】:

我有一个单一的 asp.net 页面,它包含许多选项卡和一个日期时间选择器。

当用户从日期时间选择器中选择一个日期并单击更新按钮时,它会执行应执行的操作,但不会将用户返回到同一选项卡。

HTML 代码

        <ul class='tabs'>
                <li><a href='#tab1'>Production</a></li>
                <li><a href='#tab2'>Page2</a></li>
                <li><a href='#tab4'>Page3</a></li>
                <li><a href='#tab6'>Page4</a></li>
            </ul>
    <div id='tab1'>
    <hr />
            <div class="ProductionDiv">
     <label class="ProductionLabel">Production Data</label>
         @{

            using (Html.BeginForm("UpdateProductionData", "Home", FormMethod.Post))
            { 
               <h3>Date :</h3>   <input type="text" id="dp4" name="dp4"/>
               <input type="submit" value="Update"/>
            }
        }
</div>
    <div id='tab2'>
    <hr />
            <div class="ProductionDiv">
     <label class="ProductionLabel">Production Data</label>
         @{

            using (Html.BeginForm("UpdateProductionData", "Home", FormMethod.Post))
            { 
               <h3>Date :</h3>   <input type="text" id="dp4" name="dp4"/>
               <input type="submit" value="Update"/>
            }
        }
</div>
    <div id='tab3'>
    <hr />
            <div class="ProductionDiv">
     <label class="ProductionLabel">Production Data</label>
         @{

            using (Html.BeginForm("UpdateProductionData", "Home", FormMethod.Post))
            { 
               <h3>Date :</h3>   <input type="text" id="dp4" name="dp4"/>
               <input type="submit" value="Update"/>
            }
        }
</div>
    <div id='tab4'>
    <hr />
            <div class="ProductionDiv">
     <label class="ProductionLabel">Production Data</label>
         @{

            using (Html.BeginForm("UpdateProductionData", "Home", FormMethod.Post))
            { 
               <h3>Date :</h3>   <input type="text" id="dp4" name="dp4"/>
               <input type="submit" value="Update"/>
            }
        }
</div>

C# 代码 我做了我需要做的事情并返回到索引表单是否有任何方法可以指定要返回的选项卡。 返回视图(“索引”);

【问题讨论】:

  • 有很多方法可以实现这一点。将选定的选项卡保存到隐藏字段中,将其保存到 cookie 中,将其保存到浏览器存储中(HTML 5)...stackoverflow.com/questions/14313270/…
  • 我将如何使用 HTML5 在本地存储中执行此操作
  • 是什么生成了标签--jquery-ui?
  • 这显示了如何在本地存储中保存值stackoverflow.com/questions/17087636/…
  • 是的,标签是使用 Jquery UI 生成的

标签: c# jquery asp.net asp.net-mvc


【解决方案1】:

用hidden field + jquery怎么样,像这样:

更新您的 ViewModel 并添加一个 int 属性,例如 LastTabIndex,然后在您的表单中添加一个隐藏字段:

@Html.HiddenFor(m=>m.LastTabIndex)

然后使用 jquery :

<script type="text/javascript">
    $(function() {

        $(".tabs").tabs({
            create: function() {

                var index = 0;

                if (Modernizr.localstorage) {
                    if (localStorage.getItem("LastTabIndex") === null) {
                        localStorage.setItem("LastTabIndex", 0);
                    } else {
                        index = localStorage.getItem("LastTabIndex");
                    }
                } else {
                    index = $('#LastTabIndex').val();
                }

                $(".tabs").tabs("option", "active", index);
            },

            activate: function() {
                var sel = $('.tabs').tabs('option', 'active');
                $("#LastTabIndex").val(sel);

                if (Modernizr.localstorage) {
                    localStorage.setItem("LastTabIndex", sel);
                }
            }
        });
    });
</script>

编辑:我已更新代码以使用混合解决方案(本地存储,如果不支持本地存储,则使用隐藏字段)。

希望这会有所帮助!

问候, 乌罗斯

【讨论】:

  • @afzalulh 感谢您的注意,我很快 :) 我会修改我的答案。
  • 感谢您的回答,但是我使用 @ViewData 而不是模型从我的控制器传递数据。如果没有这样的模型,我将如何存储 @Html.HiddenFor(m=>m.LastTabIndex)。
  • 嗨,使用 @Html.Hidden("LastTabIndex", ViewData["LastTabIndex"] ?? 0) 然后将参数 int LastTabIndex 添加到操作方法 UpdateProductionData (处理帖子)。内部操作方法将 LastTabIndex 的值添加到 ViewData,如下所示: ViewData["LastTabIndex"] = LastTabIndex;
  • 当我运行此代码时,我总是得到 0 作为选择的选项卡,当它执行时它不会返回我之前的选项卡,而是返回到主页。任何想法为什么会这样?谢谢
  • 您是否将@Html.Hidden("LastTabIndex", ViewData["LastTabIndex"] ?? 0) 放入表单标签中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多