使用IPagedlist的分页不在添加区域中工作

时间:2016-07-25 11:27:28

标签: asp.net-mvc pagination routes pager pagedlist

我正在开发一个Asp.net mvc应用程序。在我的应用程序中,我需要实现分页功能。所以我使用了IPagedList.Mvc。我可以成功实现分页。但是当它在一个区域内时,该分页存在问题。它使用当前在区域中分页的控制器名称重定向到默认控制器。

我有像这样的项目结构

enter image description here

正如您所看到的,有一个名为" Admin"的区域。还有一件事是默认控制器和管理区域中也有相同的控制器名称ItemController。所以我用命名空间分隔它们。

这是我在管理区域中的路线配置

context.MapRoute(
                "Admin_default",
                "Admin/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }, 
                namespaces: new string[] { "AyarDirectory.Web.Areas.Admin.Controllers" }
            );

这是默认路由配置

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "AyarDirectory.Web.Controllers" } 
            );

现在我在管理区域内的ItemController上实现分页。分页呈现成功。但问题是当我点击下一页或其他页面的分页时,它会重定向到默认的Contollers文件夹中的ItemController。

这就是我在视图中渲染分页的方式

 @Html.PagedListPager(Model.Items, page => Url.Action("List", new { page }))

所以我试着明确添加如下面的区域

@Html.PagedListPager(Model.Items, page => Url.Action("List", new { page , area = "admin" }))

抛出以下错误

enter image description here

如何停止重定向到不同的区域?

0 个答案:

没有答案