2014-02-12 183 views
0

我正在重新設計一個站點,但是在MVC5開始開發之後給出的一個要求是保持當前的URL結構不變。MVC5路由問題

該網站是所有設計,但我現在正在尋找一種方式來使用路由來建立這些網址。

我見過一噸的帖子和教程解釋標準:

routes.MapRoute(
name: "Default", 
url: "{controller}/{action}/{id}", 
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

和它的一些細微變化,如:

{controller}/{action}/{name} 

但沒有創建長文件夾結構緻密我我正在努力保持。

(編碼格式)

[http://www.domain.com/menu/.Dessert....../.Ice-Cream......./.Flavor-Ice-Cream/] 
[http://www.domain.com/menu/{categoryName}/{subCategoryName}/{productInThisSubCategory}] 

一些有更深的文件夾結構,太。

我肯定有一個簡單的方法來做到這一點,但是....

回答

1

使用AttributeRoutes。

[HttpGet, Route("menu/{categoryName}/{subCategoryName}/{productName}")] 
public ActionResult Menu(string categoryName, string subCategoryName, 
    string productName) 
{ 
    ... 
} 

屬性航線MVC5是新的,但基於流行AttributeRouting.NET工具,它已經推出MVC4和較低的項目有一段時間了。

它允許您保持路線定義更接近它的工作行爲,避免非傳統路線的「神路線文件」模式。

+0

完美。謝謝您的幫助!保持好狀況 :) – ZombieBunnies