根據您的默認PARAMS是什麼,你可以創建一個route constraint
routes.MapRoute(
"Default",
"{Param1}",
new { controller = "ProcessDynamicPage", action = "YourAction" },
new {Param1= @"\d+" }
);
如果你的參數是一個整數,這是可行的。
如果你的默認參數是字符串或者其他東西,你不能創建一個正則表達式,或者不能實現的東西IRouteConstraint
最好的辦法就是爲它創建一個與你的每個控制器匹配的動作,當它通過默認情況下,您已經嘗試進行匹配。
routes.MapRoute(
"YourController",
"YourController\{Param1}",
new { controller = "YourController", action = "YourAction" }
}
);
routes.MapRoute(
"YourController2",
"YourController2\{Param1}",
new { controller = "YourController2", action = "YourAction" }
}
);
routes.MapRoute(
"Default",
"{Param1}",
new { controller = "ProcessDynamicPage", action = "YourAction" }
);
如果你有很多控制器,你應該真正考慮如何創建你期待什麼約束。
我很難理解問題在這裏。你可以換一下還是更簡潔一些?另外,如果您已經完成了一些工作,那麼您最好分享這項工作。 – Candide
編輯問題 – rhughes