2012-08-17 39 views
2

是否有可能動態地在ASP.NET MVC4中路由別名?在ASP.MVC中路由別名4

基本上在的WebForms我是用這樣的:

foreach (var rule in rules) 
{ 
    routes.MapPageRoute("_" + rule.Url, rule.Url, rule.Redirect); 
} 

和填充數據庫從規則。

我需要允許客戶端從CMS重命名路由(或重定向)。

謝謝。

回答

0

動態路由別名在ASP.NET MVC中是一個很難的過程。使用動態約束創建單個路由可能是更優雅的解決方案。這需要設置一個只與您的類別匹配的約束。

routes.MapRoute(
    "Product", 
    "{alias}/{pageNumber}", 
    new { controller = "Products", action = "Choose", alias = UrlParameter.Optional, pageNumber = 1 }, 
    new { alias = new ProductOptionCondition() }); 

上面的動態自定義分頁使用動態路由別名選項。你究竟做了什麼?您能否解釋一下這方面的具體要求,除非它可以通過MVC-4提供的默認路由選項進行管理。

+0

謝謝,事情是我們正在建設網站與開發友好的路線(英語,組織等),並通過管理界面的客戶端可以改變這些路線,以滿足他們的需要說〜/帳戶/註冊路線,他可能想要一個別名〜/註冊新帳戶(但使用不同的語言)。所有路線都需要動態,因爲它們可能會頻繁更改。 – Pasman 2012-08-17 11:55:16

+0

MVC使用了很多思考。路由是幫助識別您的方法的過程。如果你使用反射重新命名或者別名這些方法,那麼這可能不成問題。 – Libin 2012-08-21 05:12:58