MVC剃须刀无法通过信息进行分页

时间:2018-10-09 14:13:33

标签: c# asp.net-mvc razor

我正在尝试翻页一些信息,但是当我单击其他任何页面时,数据都没有改变。

控制器:

 public ActionResult Student(string currentFilter, string searchString, int? page)
    {
        if (searchString != null)
        {
            page = 1;
        }
        ViewBag.CurrentFilter = currentFilter;
        ViewBag.SearchString = searchString;

        var students = new List<Student>();

        if (!string.IsNullOrEmpty(searchString))
        {
            var studentStore = new StudentStore();
            students = studentStore.ReadFiltered(currentFilter, searchString);
            page = 1;
        }

        int pageSize = 15;
        int pageNumber = (page ?? 1);

        return View(students.ToPagedList(pageNumber, pageSize));

    }

查看:

@using Directory.Models
@model PagedList.IPagedList<Student>
@using PagedList.Mvc;

@{
    ViewBag.Title = "Student";
    Layout = null;
 }

<h2>Student</h2>

@using (Html.BeginForm("Student", "Web", FormMethod.Get))
{
   @Html.TextBox("CurrentFilter", ViewBag.CurrentFilter as string)

   <p>
     Find by name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as 
                   string)
        <input type="submit" value="Search" />
   </p>
    }

<table>

    @foreach (var item in Model)
{

    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.LastName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FirstName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Email)
        </td>
    </tr>

}

</table>
<br/>

        Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

@Html.PagedListPager( Model, page => Url.Action("Student", new { page,currentFilter = ViewBag.CurrentFilter, searchString = ViewBag.SearchString }))

我得到了完整的学生名单,但是当我尝试将结果限制为每页15个时,我只会得到前15个,而当我单击另一页时,显示的信息不会改变。

1 个答案:

答案 0 :(得分:0)

我最终删除了所有的页面= 1行,并且可以循环浏览信息。