2017-01-11 4 views
0

共有「_Layout.cshtml」ページで定義されているメインナビゲーションの構造を持つサイトと、メインナビゲーションのリンクを使用して、そのサイトに固有の個別のナビゲーションバーを持つ別のページに移動しますページ。同じページでAsp.Net MVC複数のHtml.Actions?これを避ける正しい方法は何ですか?

enter image description here

(このようなもの^)。

現在のところ、2番目のナビゲーションとメインコンテンツはすべて同じページにあり、Html.Actionsとは別のタブが1つあり、2番目のナビゲーションのリンクをクリックしてタブを変更することで切り替わります。これは動作しますが、最初のページのロードは非常に遅くなります。なぜなら、すべてが一度にロードされているからだと思います。タブの

HTML:

<div class="tab-content"> 
<div class="tab-pane fade in active" id="tab1" role="tabpanel"> 
    <div class="container-fluid"> 
     @Html.Action("tab1", new ViewDataDictionary { { "item", m.item }, { "item2", m.item2 } }) 
    </div> 
</div> 
<div class="tab-pane fade in" id="tab2" role="tabpanel"> 
    <div class="container-fluid"> 
     @Html.Action("tab2", new ViewDataDictionary { { "item", m.item }, { "item2", m.item2 } }) 
    </div> 
</div> 
<div class="tab-pane fade" id="tab3" role="tabpanel"> 
    <div class="container-fluid"> 
     @Html.Action("tab3", new ViewDataDictionary { { "item", m.item }, { "item2", m.item2 } }) 
    </div> 
</div> 
<div class="tab-pane fade" id="tab4" role="tabpanel"> 
    <div class="container-fluid"> 
     @Html.Action("tab4", new ViewDataDictionary { { "item", m.item }, { "item2", m.item2 
     } }) 
    </div> 
</div> 

は「_layoutをクリックしたリンクに応じて変化する複数の二次ナビゲーションバーを持っていレイアウトの方が良いだろう任意の代替があります。 cshtml "ページ?

ありがとうございました。事前にすべてを読み込まなっている複雑なページを持っており、これが遅い場合

答えて

0

...選択肢は次のようになります。

  1. は、タブを作るだけでなく、それらに同じタブを使用して他のページへのリンク実際には読み込まれません。これは同じように見えますが、あるタブから次のタブへのナビゲートは、すべてがプリロードされていないため遅くなります。
  2. ユーザーがタブをクリックしたときにjavascriptを使用してコンテンツを動的に読み込みます。例えば。 jQuery.load()を使用してください。これは複雑さは増しますが、現在の設定との適合性は向上します。
関連する問題