2009-12-04 164 views
0

我是MVC的新手。我有麻煩試圖完成以下方式具有路徑設置:MVC自定義路由

System/{systemName}/{action} 

哪裏SYSTEMNAME是動態的,沒有它所說的「靜態」的方法。即

http://sitename.com/Systems/LivingRoom/View

我想上面的URL來調用,如方法,

public void RouteSystem(string systemName, string action) 
{ 
    // perform redirection here. 
} 

任何人都知道如何做到這一點?

+0

System!=系統。這是問題嗎? – 2009-12-04 17:08:10

回答

2
routes.MapRoute(
    "Systems_Default", 
    "System/{systemName}/{action}", 
    new { controller="System", action = "RouteSystem", systemName="" } 
); 

應按照您的指定路由您的請求。

注意,上述路線,您的網址應該是:

http://sitename.com/System/LivingRoom/View 
0

我也有類似的問題。我使用了以下路線。

 routes.MapRoute(
      "BlogSpecific",            // Route name 
      "{blogSubFolder}/{controller}/{action}/{id}",       // URL with parameters 
      new { blogSubFolder = "", controller = "", action = "", id = "" } // Parameter defaults 
     ); 

blogSubFolder只是作爲參數傳遞給我的控制器操作。控制器和行動都像平時一樣工作。只需用您的「系統」參數替換掉blogSubfolder即可,希望能爲您提供幫助。

0

它看起來像你打算根據系統名稱路由到控制器。如果這是正確的,那麼只需在需要這樣的:

routes.MapRoute("Systems", 
       "Systems/{controller}/{action}" 
       new{controller = "YourDEFAULTController", action = "YourDEFAULTAction"}); 

請注意,第三行只設置指定的默認值,如果它們不包含在URL中。

鑑於上面的路線,MVC將路線是:

http://sitename.com/Systems/LivingRoom/View

到客廳控制器的View操作方法。然而這樣的:

http://sitename.com/Systems/LivingRoom

將路線客廳控制器上的YourDEFAULTAction方法。