2013-04-23 129 views
2

我正在構建一個MVC應用程序,並在我看來我使用了引導選項卡。現在,我想要的是刷新頁面後重新加載最後一個活動選項卡或從控制器重定向到它。任何幫助我如何以最簡單的方式做到這一點? 這是我的代碼:刷新頁面後重新加載最後一個活動選項卡(引導)

<div id="tabs"> 
    <ul class="nav nav-tabs"> 
     <li class="active"> 
      <a href="#Stages" data-toggle="tab">Stages</a> 
     </li> 
     <li> 
      <a href="#Activities" data-toggle="tab">Activities</a> 
     </li> 
     <li> 
      <a href="#History" data-toggle="tab">History</a> 
     </li>  
    </ul> 

    <div class="tab-content"> 
     <div class="tab-pane active" id="Stages">     
      @Html.Partial("_Stages", Model.stages) 
     </div> 
     <div class="tab-pane" id="Activities"> 
      @Html.Partial("_Activities", Model.activities) 
     </div> 
     <div class="tab-pane" id="History"> 
      @Html.Partial("_History", Model.history) 
     </div> 
    </div> 
</div> 
+0

一種方法是跟蹤活動選項卡,讓您的控制器使用該信息更新模型以供視圖使用。在這裏添加你的控制器代碼,也許它可以適當修改。 – 2013-04-23 14:10:54

+0

我試圖在控制器中這樣
返回新的RedirectResult(Url.Action(「Action」,「Controller」,new {ID = id})+「#Stages」);
但它並沒有改變階段選項卡的活動,我不知道如何實現該目標 – 2013-04-23 14:14:03

+0

您需要添加基於數據綁定的'主動'類或設置它使用jQuery之後/當渲染視圖。 – 2013-04-23 16:33:02

回答

1
  1. 嘗試檢查在客戶端location.href.hash並相應地操縱標籤選擇。

  2. 否則你將不得不使用一些導航/歷史客戶端庫,如nav.jssammy.js。這可以在哈希路徑中註冊瀏覽器歷史堆棧中的標籤點擊。並與URL散列你可以操縱的標籤選擇

  3. 你可以參考Sammy Implementation

0

TwitterBootstrapMVC允許傳遞活動標籤號碼通過擴展方法:

using (var tabs = Html.Bootstrap().Begin(new Tabs("TabsId").ActiveTab(2))) 
{ 
    @tabs.Tab("Tab 1") 
    @tabs.Tab("Tab 2") 
    @tabs.Tab("Tab 3") 

    using (tabs.BeginPanel()) 
    { 
     <p>Contents of tab 1</p> 
    } 
    using (tabs.BeginPanel()) 
    { 
     <p>Contents of tab 2</p> 
    } 
    using (tabs.BeginPanel()) 
    { 
     <p>Contents of tab 3</p> 
    } 
} 

所以,如果你在你的模型中有關於你想要的標籤的信息,你可以使用它。

相關問題