Jquery Tabs MVC 4 - 从控制器重定向到选项卡

时间:2015-07-14 13:42:52

标签: asp.net-mvc-4 jquery-tabs

我有以下代码,其中'SelectedTabToFind'在控制器中设置。这用于验证,以便显示正确的选项卡。

$("#tabs").tabs(
{
active: $("#SelectedTabToFind").val(),
cache: false
});

<div id="tabs">
<ul>
    <li><a href="#tabs-1" title="View">View</a></li>
    <li><a href="#tabs-2" title="Update">Update</a></li>
    <li><a href="#tabs-3" title="Validate">Validate</a></li>
    <li><a href="#tabs-4" title="Notes">Notes</a></li>
</ul>
<div id="tabs-1">
     @Html.Partial("View",Model)
</div>
<div id="tabs-2">
     @Html.Partial("Update",Model)
</div>
<div id="tabs-3">
     @Html.Partial("Validate",Model.ValidateModel)
</div>
<div id="tabs-4">
    @Html.Partial("Notes", Model)
</div>

查看标签 - 显示信息

更新标签 - 可以更新标签

上的信息

验证标签 - 可以更新标签

上的信息

备注选项卡 - 显示信息列表,其中包含单独的页面以及用于添加/更新备注的选项卡

验证适用于Update和Validate选项卡并正确显示。添加/更新注释时,重定向不起作用,因为它使用单独的页面选项卡。

我之前使用以下代码重定向到标签

return Redirect(Url.Action("View", new { id = note.Id }) + "#tabs-4");

这不适用于上面的代码

如果我评论'有效',它可以正常工作

$("#tabs").tabs(
    {
    //active: $("#SelectedTabToFind").val(),
    cache: false
    });

如何重定向到正确的标签但保留有效的验证选项?

2 个答案:

答案 0 :(得分:0)

当您重定向到选项卡时,该选项卡将自动激活。你不能做某事而是相反!

来自jquery tabs doc

     活性 类型:布尔值或整数 默认值:0 哪个面板目前是开放的。 支持多种类型:

布尔值:将active设置为false将折叠所有面板。这要求可折叠选项为真。     整数:活动(打开)的面板的从零开始的索引。负值选择从最后一个面板向后移动的面板。

答案 1 :(得分:0)

JQuery UI tabs: How do I navigate directly to a tab from another page?

的帮助下

验证表单时会显示正确的选项卡,而其他页面的重定向也可以。

查看页面

if (document.location.hash != '')
        {
           var tabSelect = document.location.hash.substr(1, document.location.hash.length);
            //Used to return to tab using return Redirect(Url.Action("View", new { id = note.Id }) + "#4");
           $("#tabs").tabs(
           {
               active: tabSelect,
               cache: false
           });
        }
        else
        {
            $("#tabs").tabs(
            {
                //Used to return to tab using return ViewModel.SelectedTab = 2;
                active: $("#SelectedTabToFind").val(),
                cache: false
            });
        }

用于控制器中的音符部分

return Redirect(Url.Action("View", new { id = note.Id}) + "#4");

用于控制器

中的更新和验证部分
ViewModel.SelectedTab = 2;