c# - 重定向到页面但特定选项卡

标签 c# asp.net-mvc tabs

我用过this作为我正在尝试做的事情的一个例子。

我有一个标签页。

在我的 Controller 中,我想重定向到一个页面但该页面上的特定选项卡。

现在,当我在该页面上并将鼠标悬停在选项卡上时,链接是 http://localhost:xxxxx/OInfoes/Details/2#phases

所以在我的 Controller 中,我这样做是为了尝试重新创建相同的链接:

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>

最佳答案

您应该更新您的操作方法以采用一个参数来表示要选择的选项卡。

public ActionResult Details(int id,string tab="")
{
   if (id != null)
        ViewBag.ActiveTab = id.ToString();
   // to do : Return a view
}

当您返回重定向结果时,发送一个名称为tab的querystring

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>

关于c# - 重定向到页面但特定选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39579998/

相关文章:

c# - 只读与静态只读说明

c# - 使用PK删除表行和其他表中的外键行

MVC 部分 View 中包含的 Javascript 仅在第一次运行

asp.net-mvc - ASP.NET MVC View 引擎性能

javascript - 如何使用按钮在新标签页中打开

c# - 从 TextBlock 样式设置多边形可见性

c# - 无论目标机器的体系结构如何,如何获取程序文件的路径

asp.net-mvc - MVC DB first Fix display Name

java - 如何根据 vaadin 中的操作重新加载或刷新选项卡的内容

asp.net-mvc - 这看起来像是在 ASP.NET MVC 中实现选项卡的好方法吗?