我对 MVC 还很陌生。我有一个带有 jQuery 选项卡的 View (如下所示)。
<div class="demo">
<div id="demoTabs">
<ul aria-labelledby="demoTabsLabel">
<li><a href="#basicInfo">Basic Information</a> </li>
<li><a href="#address">Address</a> </li>
<li><a href="#tabbs">Tab 3</a> </li>
</ul>
<div id="basicInfo">
@using (Html.BeginForm("Create", "Organisation", FormMethod.Post)) {
<div class="editor-label">
@Html.LabelFor(model => @Model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => @Model.Name) @Html.ValidationMessageFor(model => @Model.Name)
</div>
<div>
<a class="nexttab" href="#address">
<input id="Submit2" type="submit" value="Continue" /></a>
</div>
}
</div>
<div id="address">
@Html.Label("Address") <a class="nexttab" href="#tabbs">
<input id="Submit4" type="submit" value="Continue" /></a>
</div>
<div id="tabbs">
@Html.Label("optional") </fieldset>
<input id="Submit5" type="submit" value="Submit" />
</div>
</div>
当用户按下继续按钮时,控件将使用下面的脚本移动到下一个选项卡。
$("#demoTabs").tabs();
$(".nexttab").click(function () {
$("#demoTabs").tabs("select", this.hash);
});
但是,当保存信息后请求从 Controller 返回时,它会重新加载页面并将控件再次移动到第一个选项卡。
你能建议我正确的做法吗?
非常感谢
Controller
[HttpPost]
public ActionResult Create(Xrm.Account account)
{
//create
org = orgModel.CreateOrUpdateOrg(account);
return Redirect(Url.Action("Create", "Organisation") + "#tabbs");
}
最佳答案
在您的 Controller 中,使用此行返回到您的 ActionResult。您需要在末尾附加正确的选项卡名称:
return Redirect(Url.Action("Action", "Controller") + "#tabname");
然后在您的页面中添加以下代码以在加载时显示右侧选项卡:
$("#demoTabs").tabs("select", window.location.hash);
关于jquery - MVC3 - 如何维护回发时的选项卡索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10144122/