【发布时间】:2018-08-27 15:05:18
【问题描述】:
注意:我是 jQuery 和标签的新手。
我正在尝试在 MVC 5 Web 应用程序中使用 jQuery 选项卡实现嵌套选项卡。出于某种原因,实现无法正常工作,我认为存在基于网站行为的错误,我怀疑它与活动选项卡的设置方式有关。
当用户登录时,他们会被带到MainAppTabs 的页面。顶部的两个选项卡是Client 和Account。 Client 标签有嵌套标签Client Info、Billing Selections 和About,而Account 标签目前只有一个嵌套标签Account,它应该只显示一个帐户列表。
在下面的当前实现中,帐户选项卡是第一个显示的选项卡,与 Client 选项卡相反,还有嵌套的 Account 选项卡。当我单击Client 选项卡时,它的嵌套选项卡将正常显示。但是,当我再次单击 Account 选项卡时,页面会清除,我必须刷新页面 (F5) 才能显示 Account 选项卡及其嵌套选项卡。此外,嵌套选项卡似乎显示了两次,它向右偏移并具有重复的边框,但嵌套选项卡边框和数据溢出到父选项卡边框之外。
<div id="MainAppTabs">
<ul>
<li>@Html.ActionLink("Client", "ClientTabs", "ClientSetup")</li>
<li>@Html.ActionLink("Account", "AccountTabs", "AccountSetup")</li>
</ul>
</div>
<script>
$(function () {
$("#MainAppTabs").tabs({ active: 1 });
});
</script>
客户端标签:
<div id="ClientSetupTabs">
<ul>
<li>@Html.ActionLink("Client Info", "Edit", "ClientSetup")</li>
<li>@Html.ActionLink("Billing Selections", "BillingSelections", "ClientSetup")</li>
</ul>
</div>
<script>
$(function ()
{
$("#ClientSetupTabs").tabs({ active: 1 });
});
</script>
帐户标签:
<div id="AccountSetupTabs">
<ul>
<li class="active">@Html.ActionLink("Accounts", "Index", "AccountSetup")</li>
</ul>
</div>
<script>
$(function ()
{
$("#AccountSetupTabs").tabs({ active: 1 });
});
</script>
【问题讨论】:
-
这不是为标签定义 html 的正常方式。通常,您有一个带有
<li><a href="#xx">Client</a></li>的链接,然后是一个<div id="xx">@Html.Partial(...)</div>(或@Html.Action(...))作为内容的占位符。 -
a 元素的 href 属性和 div 的 id 必须相等才能正确显示标签。
-
@Stephen,仅嵌套选项卡或所有选项卡都需要部分视图吗?您是否有任何关于该主题的示例或文档可供我阅读?
-
@Monkey,我不确定我理解你的意思。你能提供一个代码示例吗?是否可以使用 Razor Views 引擎执行此操作?
-
请参阅this fiddle,了解您需要设置的查看方式。只需用
@Html.Partial()或@Html.Action()替换“...的内容”即可呈现内容。
标签: javascript jquery asp.net-mvc jquery-plugins jquery-ui-tabs