我有一个使用 ASP.NET MVC3 的解决方案。我有一个页面,我们可以在其中管理用户(创建/编辑/删除)。我在这个页面上有分页。
按下编辑按钮时,会显示一个对话框,可以在其中进行编辑。
当用户单击保存按钮时,对话框被隐藏,列表通过 ajax 刷新。
当用户在第 2 页或第 3 页上编辑项目时出现问题,或者... 在这种情况下,显示第 1 页。原因是当前页面信息在我的操作控制器中是未知的。我想在我的视图中保留当前活动的页面。
这是我有但不太满意的解决方案:
在我的编辑按钮上,我有下面的 ActionLink:
@Html.ActionLink("Editer", "Edit", new { userID = item.UserID }, new { userID = item.UserID, page = Model.PageNumber, @class = "btn small editUser" })
我在我的锚链接中注入页码。接下来显示对话框。下一个用户单击保存(提交)。触发提交动作,并在 post 参数中注入页码,如下所示:
$('form', dialog).submit(function () {
$.post($(this).attr('action'), $(this).serialize() + '&page=2', function (data, status) {
$('#my-modal').modal('hide');
$("#userList").html(data);
})
});
如您所见,我出于测试目的手动添加了“&page=2”。我的控制器中的操作接收发布的数据(已编辑的项目 + 页码)更新了我的存储库,然后 RedirectToAction("List", new {page = page}) 刷新右侧页面的列表。
我不喜欢这个解决方案。一定有更好的方法,不是吗?
如果有人可以帮助我,请提前感谢。