3

1 つのページに 4 つの異なるタブがあり、各タブのデータは部分ページを使用した ajax 呼び出しによってレンダリングされます。タブのデータは ajax post によって読み込まれます。ajax 呼び出し:

  $('#movieDatabase').click(function () {

            $.ajax({
                contentType: 'application/json; charset=utf-8',
                dataType: 'html',
                type: 'POST',
                url: '/Admin/GetMovieDatabase',
                data: {},
                success: function (data) {
                    $('#view16').html(data);
                },
                failure: function (response) {
                    alert('error');
                    $('#view16').html(response);
                }
            });
        });

この ajax 呼び出しにより、部分ページがレンダリングされました。今私がしたいのは、データベースから取得したムービーのページングです。このために、PagedList.Mvc を使用します。しかし、ムービーをあるページから別のページにナビゲートする際に問題が発生しました。それは次の方法で行われます。

 @Html.PagedListPager((IPagedList)Model.MovieInforamtions, page => Url.Action("GetMovieDatabase", new { page }))

しかし、次のページをクリックすると、HTTPGet にアクションを記述していないため、ページが見つかりませんというエラーが表示されます。また、HTTPGet で上記の呼び出しを行った場合、すべてのページをレンダリングできず、部分的なページしかレンダリングできませんでした。私の行動は..

 [HttpPost]
 public ActionResult GetMovieDatabase(int? page)
 {
      var AdminGetMovieDatabaseViewModel = new AdminGetMovieDatabaseViewModel();
      var allMovie = _AdminService.getAllMovieInfo();
      var pageNumber = page ?? 1; 
      // if no page was specified in the querystring, default to the first page (1)
      var onePageOfMovie = allMovie.ToPagedList(pageNumber, 5); 
      // will only contain 5 products max because of the pageSize

      AdminGetMovieDatabaseViewModel.MovieInforamtions = onePageOfMovie;

      return PartialView("MovieDataBasePartialPage", AdminGetMovieDatabaseViewModel);
   }

前に行われたajax呼び出しのように次のページをレンダリングするにはどうすればよいですか?

4

1 に答える 1