在asp.net mvc 3中插入后如何留在同一个jquery ui tab?

时间:2013-03-03 14:03:34

标签: jquery asp.net-mvc-3 jquery-ui jquery-ui-tabs

我使用了jquery ui tab效果。我正在尝试将数据插入到模型中..它工作得很好..我可以插入记录..但我的问题是如何在插入后保持在同一个选项卡上?我可以从控制器中执行吗?我想在我的asp.net mvc 3应用程序中做到这一点

这是我的Tab调用部分:

<script>
    $(function () {
        $("#tabs").tabs();

    });
</script>


<div id="tabs">
<ul>

<li><a href="#tabs-2">Proin dolor</a></li>
<li>@Html.ActionLink("Create Student","CreateStudent")</li>
<li>@Html.ActionLink("Student Details", "StudentDetails")</li>

</ul>
</div>

以下是学生详细信息标签:

@model IEnumerable<accordionNtabs.Models.student>


<table>
    <tr>
        <th>
            name
        </th>
        <th>
            birthdate
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.birthdate)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.id }, new { id = "privacyLink" }) |
            @Html.ActionLink("Details", "Details", new { id=item.id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.id }) |

        </td>
    </tr>
}



</table>

点击编辑链接时会显示编辑视图:

@model accordionNtabs.Models.student

@using(Html.BeginForm()){     @ Html.ValidationSummary(真)              学生

    @Html.HiddenFor(model => model.id)

    <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 class="editor-label">
        @Html.LabelFor(model => model.birthdate)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.birthdate)
        @Html.ValidationMessageFor(model => model.birthdate)
    </div>

    <p>
        <input type="submit" value="Save" />
    </p>
</fieldset>

}

    @ Html.ActionLink(“返回列表”,“索引”)

我希望编辑视图加载到同一个标签页上。

2 个答案:

答案 0 :(得分:2)

听起来你正在做一个回发然后页面刷新..没有ajax对吗?在这种情况下,您需要使用隐藏字段或其他内容来记录选择了哪个选项卡,然后当您重新显示表单时,您需要通过javascript设置所选选项卡。请参阅此答案以获取创意...:Selecting a jQuery Tab using a parameter in the URL

答案 1 :(得分:0)

这是asp.net webforms通过viewstate提供的一种功能。不幸的是,对于asp.net MVC,开发人员需要通过编写一些代码来处理这个问题。您可以在cookie中保持此状态,但要注意用户可能会禁用cookie。或者,您可以使用HTML5 Web存储对象来存储UI状态。