我很想知道人們如何處理以下情況。Asp.Net MVC路由 - 處理具有相同簽名的多條路由?
假設我們有一個數據字段,並且每個數據字段可以有無限數量的DataValues
我們有2個控制器來處理這些對象
- 的操縱DataFieldController
- DataValueContoller
現在,如果我們需要添加一個新的DataValue,我們需要知道CustomDataField的ID。以下URL將被使用,
/CustomDataValue/Add/1
1 =數據字段ID
然而,因爲ASp.Net MVC發動機結合參數名稱的模型(即,在下面的情況下,我的DatValeu對象將具有它的ID被替換,當我實際嘗試通過FieldID時)
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Site", action = "Home", id = UrlParameter.Optional } // Parameter defaults
);
我們該如何處理?做下列顯然是行不通的。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Site", action = "Home", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{fieldid}", // URL with parameters
new { controller = "Site", action = "Home", fieldid = UrlParameter.Optional } // Parameter defaults
);
我認爲這是一個常見問題,目前我找不到明顯的解決方案。如果簽名是不同的,但都是/ String/String/Int
==========================
這些路線如何運作呢?
- /DataValue /添加/ {} DataFieldID
- /DataValue /編輯/ {ID}
- /DataValue /列表/ {} DataFieldID
我必須添加3條路線?
我編輯了我的答案。我希望它有幫助。我將不會在很長一段時間。如果它不能解決問題,您可以重新提出問題。 – 2010-08-11 21:47:02