2011-05-25 40 views
2

我在我的视图中有三个选项卡(点击时启用了div),在tab3中我具有删除功能。当我在确认框中点击“确定”时,记录被删除并重定向到我的视图,即tab1启用。在asp.mvc中的标签导航中保留数据

我的控制器:

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

      return this.RedirectToAction("ManageCompanies"); 
     } 

我怎样才能重定向到删除后同一TAB3?

回答

1

开始与此:

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

而在你ManageCompanies行动,采取所谓的showThirdTab一个布尔参数。将它传递给你的视图,如果它是真的,设置一个类或一些值来告诉你的javascript切换到该选项卡。

偏离主题有点,但我可能会建议一种不同的方法?只需在删除后异步返回三个选项卡的数据/ html,并使用jQuery将其加载到其他div中即可。

0

我已经列出下面的方法,可能会有更多!

1.标签中的所有操作都应该使用ajax调用完成。

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

步骤:

一)。在模型中创建一个属性,“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元素。

步骤:

一)。按照步骤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'); 
});