2015-10-29 39 views
0

我已經使用引導程序創建了部分視圖佈局來顯示單個面板。每當我調用局部視圖時,我都會使用此佈局並在ViewBag上傳遞片段名稱。根據部分視圖嵌套動態設置標題html元素級別

<div class="panel panel-default"> 
    <div class="panel-heading"> 
     @ViewBag.SectionName    
    </div> 
    <div class="panel-body"> 
     <div class="container"> 
      @RenderBody() 
     </div> 
    </div> 
</div> 

但問題是,在局部視圖內部,我可能會多次調用另一個使用相同佈局的局部視圖。這將導致嵌套面板具有多個級別。

問題是,我想根據部分視圖嵌套級別將標題元素添加到包含部分名稱的面板標題元素。如果我們有三個級別,代碼將如下所示:

<div class="panel panel-default main-content-panel"> 
    <div class="panel-heading"> 
     <h1>Section 1</h1> 
    </div> 
    <div class="panel-body"> 
     <div class="container"> 
      <div class="panel panel-default main-content-panel"> 
       <div class="panel-heading"> 
        <h2>Section 2</h2> 
       </div> 
      <div class="panel-body"> 
       <div class="container"> 
        <div class="panel panel-default main-content-panel"> 
         <div class="panel-heading"> 
          <h3>Section 3</h3> 
         </div> 
         <div class="panel-body"> 
          <div class="container"> 
           Some content and respective closing divs.... 

我怎麼能做到這一點?一個想法或解決方案,不使用JS將不勝感激。

+1

既然Bootstrap Panels需要JavaScript,爲什麼不需要JavaScript解決方案? –

+0

我在一個可訪問的網站上工作,一個要求是爲了網站來保證其邏輯分發沒有安裝JavaScript。 –

回答

0

JS肯定會是最簡單的方式,但既然你已經明令禁止的是,唯一的選擇是評價的嵌套層數有多少會他們實際上呈現。

關於什麼數據結構代表這些部分,這裏沒有太多的細節,但通常您需要在渲染較高級別時對較低級別進行遞歸計數,並在部分中相應地更改標題對此負責。沒有更多的代碼,我無法給出更多的指導。

長而短,當部分被渲染時,你只會在蘋果上咬一口。你不能等到最後,然後修改先前渲染的部分中發生的事情。