在asp.mvc中的选项卡导航中保留数据

时间:2011-05-25 13:39:01

标签: jquery asp.net-mvc

我的视图中有三个选项卡(单击时启用div),在tab3中我有删除功能。当我在确认框中单击“确定”时,该记录将被删除并重定向到我的视图,即tab1启用。

我的控制器:

public ActionResult DeleteAccount(int? id)
        {
            if(id.HasValue)
            { this.UserAccountTasks.DeleteUserProfile(id.Value); }

            return this.RedirectToAction("ManageCompanies");
        }

删除后如何重定向到同一个tab3?

2 个答案:

答案 0 :(得分:1)

从这开始:

return RedirectToAction("ManageCompanies", new { showThirdTab = true });

在ManageCompanies Action中,接受一个名为showThirdTab的bool参数。将其传递给您的视图,如果确实如此,请设置一个类或一些值,以告诉您的javascript切换到该标签。

有点偏离主题,但我可以建议采用不同的方法吗?只需在删除后异步返回三个选项卡的data / html,然后使用jQuery将其加载到其他div中。

答案 1 :(得分:0)

我已列出以下方式,可能会有更多!

1.选项卡中的所有操作都应该使用ajax调用完成。

2.使用Html和模型数据操作。

<强>步骤:

A)。在模型中创建一个属性,“ActiveTab”类型为整数

B)。在视图中,

@{
   //We can also use the array
   string activeTabCss1  =Model.ActiveTab == 1? "active-tab":String.Empty ;
   string activeTabCss2 = Model.ActiveTab == 2? "active-tab":String.Empty ;
   string activeTabCss3 = Model.ActiveTab == 3? "active-tab":String.Empty ;
}
<div class="tab @activeTabCss1"></div>
<div class="tab @activeTabCss2"></div>
<div class="tab @activeTabCss3"></div>

3.使用jquery来操作DOM元素。

<强>步骤:

A)。按照步骤2.a

B)。在视图中,为ActiveTab创建一个隐藏。

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

C)。写下面的javascript函数。

$(document).ready(function(){
      var activeTab = $("#ActiveTab").val();
      $(".tab:nth-child("+activeTab +")").addClass('active-tab');
});