【发布时间】:2016-10-11 04:39:16
【问题描述】:
我正在为 ASP.NET MVC 5 中的应用程序进行分页,并停留在分页的路由上。以下是我尝试使用的格式:
<a href="~/Home/page/1)">Next</a>
目前,它适用于以下情况:
<a href="~/Home?page=1">Next</a>
在 RouteConfig 文件中,我设置了以下路由:
public static void RegisterRoutes(RouteCollection routes)
{
//routes.RouteExistingFiles = true;
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute( //Route For The Pagination
"Home",
"Home/page/{page}",
new { controller = "Home", action = "Index" }
);
routes.MapRoute( //Default Route
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
控制器:
public ActionResult Index(int? page)
{
MainDbContext db = new MainDbContext();
var listItems = new List<List>();
if (User.Identity.IsAuthenticated)
{
listItems = (db.Lists.ToList());
}
else
{
listItems = (db.Lists.Where(m => m.Public == "Yes").ToList());
}
var pager = new Pager(listItems.Count(), page);
var viewModel = new List
{
Items = listItems.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(),
Pager = pager
};
return View(viewModel);
}
我不确定我是否做对了。但是现在,当我运行应用程序时,对于分页部分,它显示此消息“Server Error in '/' Application - The resource cannot be found”。我是否需要配置其他任何东西并期待专家的建议。谢谢。
【问题讨论】:
-
能贴出处理寻呼路由的控制器吗?
-
我已经编辑了帖子。我希望,您询问了上述处理分页的控制器。如果我对 ASP.NET MVC 完全陌生,请告诉我是否遗漏了什么。谢谢。
-
我认为
<a href="~/Home/page/1)">Next</a>中的)是错字?否则,您显示的代码将正常工作。这些是唯一的路线吗?它们是否按照您显示的顺序? -
是的。它们的顺序如图所示。基本上我在前端使用剃刀进行分页,如下所示:@Html.ActionLink("Next", "Index", "Home", new { page = (Model.Pager.CurrentPage + 1) }, null)甚至尝试过这个:Next。我对此有点困惑。后端还有什么要配置的吗?我希望您在这方面提出建议,并尝试了下面提供的解决方案。但没有奏效。谢谢。
标签: asp.net-mvc asp.net-mvc-5 pagination routing