【发布时间】:2012-04-18 12:29:34
【问题描述】:
我在一个基于 Django 的 Web 应用程序中有一个与此类似的 URL:
/market/prices/2011-05-01/min/stocks/msft/dell/appl/
应用程序正在用 ASP.NET MVC 3 重写。我需要维护 URL。
问题的症结在于我要支持多个股票代码,用正斜杠隔开。
我想要一个如下所示的自定义路由:
routes.MapRoute(
"Stocks",
"{queryDate}/{minOrMax}/stocks/{listOfStocksSeparatedByForwardSlash}",
new { controller = "Market", action = "Prices" }
);
控制器看起来像:
public ActionResult Prices(string queryDate, string minOrMax, ICollection<string> listOfStocksSeparatedByForwardSlash) {
var model = repository.List(queryDate, minOrMax, listOfStocksSeparatedByForwardSlash);
return View(model );
}
我目前的解决方案如下:
routes.MapRoute(
"Stocks",
"{queryDate}/{minOrMax}/stocks/{*listOfStocksSeparatedByForwardSlash}",
new { controller = "Market", action = "Prices" }
);
public ActionResult Prices(string queryDate, string minOrMax, string listOfStocksSeparatedByForwardSlash) {
var list = listOfStocksSeparatedByForwardSlash.Split('/').ToList();
var model = repository.List(queryDate, minOrMax, list);
return View(model );
}
虽然这可行,但我很想知道是否有更好的方法来做到这一点?
【问题讨论】:
-
我认为您当前的解决方案是最简洁的方法,尽管我准备被证明是错误的。
标签: asp.net-mvc-3 asp.net-mvc-routing