我使用this作为我要做的事情的一个例子。
我有一个标签页。
在我的控制器中,我想重定向到一个页面,但该页面上有一个特定的标签。
现在,当我在该页面上时,将鼠标悬停在标签上,链接为http://localhost:xxxxx/OInfoes/Details/2#phases
所以在我的控制器中我这样做是为了尝试重新创建相同的链接:
return new RedirectResult(Url.Action("Details", "OInfoes", new { id = phase.OID }) + "#phases");
这给了我正确的链接,但它没有把我放在正确的标签上。
如何让它发挥作用?
标签的HTML格式如下:
<ul class="nav nav-tabs">
<li class="active"><a href="#oInfo" data-toggle="tab">Information</a></li>
<li><a href="#reports" data-toggle="tab">Previous Reports</a></li>
<li><a href="#phases" data-toggle="tab">Previous/Current Phases</a></li>
</ul>
答案 0 :(得分:5)
您应该更新您的操作方法,以获取一个参数来表示要选择的标签。
public ActionResult Details(int id,string tab="")
{
if (id != null)
ViewBag.ActiveTab = id.ToString();
// to do : Return a view
}
当您返回重定向结果时,请发送带有名称标签的查询字符串
return new RedirectResult(Url.Action("Details", "OInfoes", new { id = phase.OID ,
tab="phases"}));
现在准备好文档,使用ViewBag.ActiveTab
值的值,从中生成jQuery选择器并使用它来调用.tab('show')
。
$(function () {
var selector = '@ViewBag.ActiveTab';
if(selector)
{
$("#link-tab"+selector).tab('show');
}
});
确保您的标签符合上述代码。
<ul class="nav nav-tabs">
<li class="active"><a href="#oInfo" id="link-info" data-toggle="tab">Info</a></li>
<li><a href="#reports" id="link-reports" data-toggle="tab">Prev Reports</a></li>
<li><a href="#phases" id="link-phases" data-toggle="tab">Prev/Cur Phases</a></li>
</ul>