Asp.Net MVC多个Html.Actions在同一页上?避免这种情况的正确方法是什么?

时间:2017-01-11 15:49:54

标签: html asp.net razor

处理具有在我的共享“_Layout.cshtml”页面中定义的主导航结构的网站以及主导航上的链接,该链接将带您到具有单独导航栏的不同页面那页。

enter image description here

(类似这样^)。

目前我的第二个导航和主要内容都在同一页面上,并且有大量不同的标签,其中呈现了Html.Actions,并通过单击第二个导航上的链接并更改选项卡来切换它们。这有效,但它使我的初始页面加载速度非常慢,因为我相信它们都是一次加载的。

标签的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”页面上的链接而发生变化?

感谢您的任何帮助或想法。

1 个答案:

答案 0 :(得分:0)

如果你有复杂的页面提前加载,这很慢......替代方案是:

  1. 使标签只链接到其他页面,这些页面使用相同的标签,但实际上并未加载。这看起来是一样的,但是 - 自然地 - 从一个标签导航到下一个标签将会变慢,因为一切都没有预先加载。
  2. 当用户点击标签时,使用javascript动态加载内容。例如。使用jQuery.load()。这种情况更复杂,但更适合您当前的设置。