使用PagedList.Mvc作为部分页面

时间:2013-06-05 09:22:46

标签: asp.net-mvc asp.net-mvc-3 asp.net-ajax

我在一个页面中有四个不同的选项卡,每个选项卡的数据由使用部分页面的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调用一样?

1 个答案:

答案 0 :(得分:0)

我把代码放在局部视图中的javascript部分,对我有用。

<script language ="javascript" type="text/javascript">
$('#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);
                }
            });
        });
    </script>