2016-09-19 44 views
2

我已经使用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

您正确生成的链接,所以有可能是该网页,处理散时,你是一个网页上,也就是当你将被重定向到该页面与哈希上不同于改变了一些额外的逻辑它。你使用的是什么JavaScript库? –

+0

@AndrésNava-.NET我正在使用jQuery,但我没有用jQuery做过任何事情..这些标签已经由[Bootstrap](http://bootswatch.com/default/#navs)标记生成 –

+0

Take看看这个http://stackoverflow.com/a/33675057/40521 – Shyju

回答

4

你应该更新你的操作方法采取一个参数代表标签中选择。

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'); 
    }   
}); 

确保您的选项卡的ID与我们上面的代码匹配。

<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> 
+1

工作!谢谢! –