0
我有一個靜態網站(無數據庫),並且難以理解如何爲子類別設置路由。例如,我可以做以下其中的類別是控制器和化妝是動作:類別和子類別的mvc路由示例
- 汽車/豐田
- 汽車/ BWM
,但是當我添加另一個級別我不「知道如何設置路由
- 汽車/豐田/凱美瑞
- 汽車/豐田/花冠
- 輛汽車/豐田/賽利卡
我有一個靜態網站(無數據庫),並且難以理解如何爲子類別設置路由。例如,我可以做以下其中的類別是控制器和化妝是動作:類別和子類別的mvc路由示例
,但是當我添加另一個級別我不「知道如何設置路由
你應該確定一個路線看起來像這樣:
routes.MapRoute(
"CarsRoute",
"cars/{make}/{model}",
new {
controller = "Cars",
action = "Display",
make = UrlParameter.Optional,
model = UrlParameter.Optional
});
這將映射到與簽名的操作方法:
public ActionResult Display(string make, string model)
如果雙方make
和model
可以爲空。然後,您可以執行您的操作。
我大概有一年/品牌/型號去
routes.MapRoute(
"Default",
"{controller}/{year}/{make}/{model}"
new
{
controller = "car",
action = "search",
year = DateTime.Today.Year,
model = "all",
make = Url.OptionalParameter
}
);
(你可能要在一年的約束,迫使它是一個合理的值?)
與像
控制器public class CarController
{
public ActionResult Search(int year, string make, string model)
{
// handle model "all" and empty "make" specially
}
}
MVC3沒有很好地處理具有多個可選參數的路由,其中一個應該有一個默認值。如果OP使用或升級到MVC3,這將有所幫助。當您嘗試使用它來生成路線時,問題就出現了;它失敗。 – tvanfosson 2011-03-15 19:49:07
是的,這個make很可能有一個默認值。 – 2011-03-15 19:52:55