2

MVC 4 アプリケーションで PagedList を使用してページングを実装しました。私のアプリのホームページには、特定のオブジェクトに関する要約データのリストを表示する部分ビューが含まれています。各リスト項目の横には、クリックするとモーダル ウィンドウが起動し、その特定のリスト項目に関する詳細情報が表示されるボタンがあります。

リスト アイテムの最初の「ページ化」ページではすべてが正常に機能しますが、2 番目の「ページ化」ページに移動し、ボタンをクリックしてモーダルを起動しても何も起こりません。Chrome の開発者ツールからUncaught TypeError: Object [object Object] has no method 'modal'.

問題のパーシャルはリストを出力し、モーダルの DIV と、モーダル ウィンドウを起動するボタン クリック イベントを処理する JS 関数を含みます。その部分的なビューからの JS は次のとおりです。

<script type="text/javascript">
$(document).ready(function () {
    $('.show-modal').click(function () {
        var url = $('#modal-view-property-from-get-all').attr('data-url');
        var id = $(this).attr('data-id');

        $.get(url + '/' + id, function (data) {
            $('#view-property-from-get-all-container').html(data);
            $('#modal-view-property-from-get-all').modal('show');
        });
    });
});
</script>

最初の「ページ化された」ページに戻ると、ボタンも起動せず、同じキャッチされていない typeError がスローされます。複数行のテキストを切り捨てる私が使用する別のjQueryプラグインも機能しなくなり、テキストが含まれているDIVをオーバーフローさせます。

  1. ここで実際に何が起こっているのか - ページングを使用すると、このように JS に干渉するのはなぜですか?
  2. どうすればこれを解決できますか?

編集:

特定のタイプのすべてのレコードがコントローラー アクションから返されます。

return PartialView("_GetAllPropertiesPartial", model.ToPagedList(pageNumber, pageSize));

これは部分的なものであるため、ページング ナビゲーションは次のように処理されAjax.ActionLinks()ます。

@Ajax.ActionLink("<<", "GetAllProperties", new { page = 1 }, new AjaxOptions { UpdateTargetId = "quick-property-search-results" })
4

1 に答える 1