我正在开发一个ASP.NET MVC Web应用程序。
在我的一个页面上,我标记了如下信息:
我的ActionLink看起来像这样:
@Html.ActionLink("Back to Details", "RecordView", "ApplicantRecords", null, null, "Documents", new { id = Model.InternID }, null)
现在,当我将鼠标悬停在我的应用程序中的链接上时,它具有正确的InternID和片段语法,但是当我点击它时,它会将我发送到显示“申请人配置文件”的选项卡,而不是“文档”。
当我将鼠标悬停在“文档”标签上时,它与我在我的应用程序中悬停我的actionlink时的网址相同。
有没有办法解决这个问题?
答案 0 :(得分:1)
简单地将片段附加到URL并不会激活特定选项卡。 JavaScript" tab"库只是利用片段进行优雅降级:如果未启用JavaScript,请单击"选项卡"由于页面锚点的工作方式,会跳转到标签内容所在页面的右侧部分。但是,您有责任检查URL中的片段(如果存在)并激活相应的选项卡。如何激活标签取决于您的特定解决方案,但您尚未向我们提供任何相关信息。
答案 1 :(得分:1)
除了Chris Patt的回答。
您需要明确启用所需的特定选项卡。
首先,您需要在您的网址查询字符串中再传递一个参数,以表示要选择的标签。
@Html.ActionLink("Back to Details", "RecordView", "ApplicantRecords",
new { id = Model.InternID ,tab="documents" }, null)
并在您的RecordView()
操作方法中,您将接受此操作,将其设置为ViewBag,以便您可以在剃刀视图中阅读它。
public ActionResult RecordView(int id,string tab="profile")
{
ViewBag.CurrentTab = tab;
return View();
}
并且在您看来,在文档ready
事件中,我们将读取此值并使用它来显示特定的标签。
$(function() {
var tab = "@ViewBag.CurrentTab";
$('.nav-tabs a[href=#'+tab+']').tab('show');
});
假设您的标签链接的href值为"#profile"
和"#documents"
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#profile" aria-controls="Profile" role="tab" data-toggle="tab">Profile</a>
</li>
<li role="presentation">
<a href="#documents" aria-controls="documents" role="tab" data-toggle="tab">Docs</a>
</li>
</ul>