用于分页和日期的MVC路由



我有一个路由系统,可以不传递日期,也可以传递带有页码的日期。

routes.MapRoute(
            name: "ArticlesArchiveFilter",
            url: "Article/Archive/{searchDate}/{pageNumber}",
            defaults: new { controller = "Article", action = "Archive", searchDate = UrlParameter.Optional, pageNumber = "" }
        );
        routes.MapRoute(
           name: "ArticlesArchiveBasic",
           url: "Article/Archive/{pageNumber}",
           defaults: new { controller = "Article", action = "Archive", pageNumber = "" }
       );

我的问题是,当传递一个url的url路由与日期时间和页码工作,但不能没有日期时间作为页码将始终默认为1。

我的控制器是这样的…

 public ActionResult Archive(DateTime? searchDate, int pageNumber = 1)
    {
        ArticleListViewModel model = new ArticleListViewModel();
        model = new ArticlePageManager().Filter(searchDate, pageNumber: pageNumber).MapToList();
        return View(model);
    }
有谁知道我该怎么解决这个问题吗?

尝试将路由更改为此。

routes.MapRoute(
    name: "ArticlesArchiveFilter",
    url: "Article/Archive/{pageNumber}/{searchDate}",
    defaults: new { controller = "Article", action = "Archive", searchDate = UrlParameter.Optional, pageNumber = "" }
);

最新更新