1
我正在使用ASP.NET MVC3 RC1开展一个项目,并想知道我的路线是否可以简化。路由简化
我有了这个控制器动作:
public ActionResult Things(DateTime? fromDate, DateTime? toDate, int? pageNo)
{
DataLayer dataLayer = new DataLayer();
int page = pageNo.HasValue ? pageNo.Value : 1;
List<Thing> things = dataLayer.GetThingsByDateRangePaged(User.Identity.Name, fromDate, toDate, pageNo, PageSize);
return View(things);
}
我希望能够通过访问以下网址此控制器操作:
- 事情
- 事情/第2页
- 东西/从11-14-2010 /到11-24-2010
- 东西/从11-14-2010 /到11-24-2010/page2
我目前有这些路线编制:
routes.MapRoute("Things",
"Things",
new { controller = "Thing", action = "Things" }
);
routes.MapRoute("ThingsPaged",
"Things/Page{pageNo}",
new { controller = "Thing", action = "Things" }
);
routes.MapRoute("ThingsCertainPeriod",
"Things/From{fromDate}/To{toDate}",
new { controller = "Thing", action = "Things" }
);
routes.MapRoute("ThingsCertainPeriodPaged",
"Things/From{fromDate}/To{toDate}/Page{pageNo}",
new { controller = "Thing", action = "Things" }
);
在我看来,我的路线是成熟的重构,但我不完全知道如何摆脱冗余。 UrlParameter.Optional似乎并不像我在尝试使用它时那样工作。我的路线可以简化为一条路线吗?
我宁愿我没有消除页面,来自前缀,因为我觉得他们添加到网址,使它更友好。 – xTRUMANx 2010-11-24 16:25:25