DjangoベースのWebアプリに次のようなURLがあります。
/market/prices/2011-05-01/min/stocks/msft/dell/appl/
アプリケーションはASP.NETMVC3で書き直されています。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 );
}
これは機能しますが、これを行うためのより良い方法があるかどうか知りたいですか?