ASP.NETMVC3を使用したソリューションがあります。ユーザーを管理(作成/編集/削除)できるページがあります。このページにページングがあります。
編集ボタンを押すと、編集可能なダイアログが表示されます。
ユーザーが保存ボタンをクリックすると、ダイアログが非表示になり、リストがajaxを介して更新されます。
この問題は、ユーザーが2ページまたは3ページの項目を編集したときに発生しました。この場合、1ページが表示されます。その理由は、現在のページ情報が私のアクションのコントローラーで認識されていないためです。現在アクティブなページを表示したままにします。
これが私が持っている解決策ですが、完全には満足していません:
編集ボタンには、以下のActionLinkがあります。
@Html.ActionLink("Editer", "Edit", new { userID = item.UserID }, new { userID = item.UserID, page = Model.PageNumber, @class = "btn small editUser" })
アンカーリンクにページ番号を挿入します。次に、ダイアログが表示されます。次のユーザーは[保存(送信)]をクリックします。送信アクションがトリガーされ、ページ番号が次のように投稿パラメーターに挿入されます。
$('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})が正しいページのリストを更新します。
私はこの解決策が好きではありません。もっと良い方法があるはずですよね?
誰かがこれについて私を助けることができるならば、前もって感謝します。