我正在开发一个Asp.net mvc应用程序。在我的应用程序中,我需要实现分页功能。所以我使用了IPagedList.Mvc。我可以成功实现分页。但是当它在一个区域内时,该分页存在问题。它使用当前在区域中分页的控制器名称重定向到默认控制器。
我有像这样的项目结构
正如您所看到的,有一个名为" 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" }))
抛出以下错误
如何停止重定向到不同的区域?