asp.net-mvc如何发送当前页码在 MVC4 排序?

发布时间: 2016/10/9 2:48:54
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

嗨,我有我 MVC 应用程序中实现分页,我执行分类设施。当我点击 header(ActionLink) 我想要排序。这是我的传呼机代码。

  @Html.PagedListPager(Model.logDetails, page => Url.Action("Index",
new { page, currentFilter = ViewBag.CurrentFilter, filterdateTime=ViewBag.filterdateTime, filterdocType= Model.doc_typeid, filteredemployeeID = Model.employeeID, filteredcitizenId = Model.citizenId, sortOrder = ViewBag.currentSort }))
                Page @(Model.logDetails.PageCount < Model.logDetails.PageNumber ? 0 : Model.logDetails.PageNumber) of @Model.logDetails.PageCount

这是我的头我要排序的地方。

 <th>@Html.ActionLink("Label", "Index", new { sortOrder = ViewBag.LabelSortParm, currentFilter = ViewBag.CurrentFilter, filterdateTime = ViewBag.filterdateTime, filterdocType = Model.doc_typeid, filteredemployeeID = Model.employeeID, filteredcitizenId = Model.citizenId, Page })</th>

我这里有问题,发送当前页码回行动的方法。所有值都我能够把它送回除当前页码的操作方法。谁能告诉我怎样可以得到和在 ActionLink 中发送 pagenumber 吗?先谢谢你了。

解决方法 1:

你剃须刀底部视图页面就像它应该那里进行页面导航。在这种情况下提防参数叫做 page .当过导航请求已从用户界面,它会将此当前计数传递给控制器操作结果方法。

<!--Grid / Page navigations goes here-->
<br />
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("List", new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))

你应该有您的控制器逻辑与此类似的方式相同。在这里也看看参数叫做 page .运载当前页码当我们经过从 UI。 时间。默认情况下它我将 0 或 1。

    public ViewResult List(string sortOrder, string currentFilter, string searchString, int? page, ManageMessage? message)
    {
            ViewBag.CurrentSort = sortOrder;
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "Name_desc" : "";
            if (searchString != null) { page = 1; }
            else { searchString = currentFilter; }

            ViewBag.CurrentFilter = searchString;

            var company = getComoanyList();

            switch (sortOrder)
            {
                case "Name_desc":
                    company = company.OrderByDescending(s => s.Name);
                    break;
                default:
                    company = company.OrderBy(s => s.Name);
                    break;
            }

            int pageSize = 10;
            int pageNumber = (page ?? 1);
            return View(company.ToPagedList(pageNumber, pageSize));
    }

希望这有助于。

官方微信
官方QQ群
31647020