我使用了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(“返回列表”,“索引”)我希望编辑视图加载到同一个标签页上。
答案 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状态。