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