查看选项卡的名称,“更新个人详细信息”、“检查订单”和“更改登录详细信息” - 似乎这些是完全不同的,但用户可以执行的相关选项。
对我来说,将它们拆分为具有三个不同视图的三个不同操作是有意义的,这意味着您只为可见选项卡呈现操作。这样,如果用户只想更新他们的详细信息,则服务器不会执行数据库查询来检查订单
您将使用一些 css 对其进行样式设置,使其看起来像三个选项卡,但每个选项卡实际上都是一个链接,它发出一个新请求,只是让它看起来像有三个选项卡。
例如
<div id="content">
<ul>
<li class="active">Update Personal Details</li>
<li>@Html.ActionLink("Check Order","CheckOrder")</li>
<li>@Html.ActionLink("Update Logon Details","UpdateLogonDetails")</li>
</ul>
<div id="tab1" />
... Update Personal Details Tab... etc
</div>
... tab2 and tab 3 not included...
</div>
CheckOrder 和 UpdateLogonDetails 的操作将呈现基本相同的视图,但会显示不同的选项卡。
这会产生一种错觉,即它都是使用选项卡运行的,即使它不是。
然后,当您运行所有这些时,您可以使用 JQuery 更新这些链接以通过 AJAX 触发请求,将结果作为部分视图返回并使用结果更新内容 div。这意味着启用 Javascript 的人可以获得适当的“ajax”体验,但对于禁用 javascript 的人来说,它仍然可以正常工作。