我有以下代码,其中'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
});
如何重定向到正确的标签但保留有效的验证选项?
答案 0 :(得分:0)
当您重定向到选项卡时,该选项卡将自动激活。你不能做某事而是相反!
活性 类型:布尔值或整数 默认值: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;