2011-05-24 70 views
2

我有幾個控制器, 一個讓的說電腦控制器 它擁有筆記本電腦的作用,桌面小工具 我想有網頁名稱:www.MyDomain /筆記本電腦(等) 和一說讓電子控制器 它有動作電視,DVD,(等等) 我想有網頁名稱:www.MyDomain /電視(等等) 沒有指定控制器? 我不明白髮生了什麼我的問題之前,我不能編輯 (希望管理員將其刪除)選擇,而無需控制器名稱

+0

您的上一個問題必須在另一個帳戶下被詢問。如果您提供鏈接,我可以合併帳戶。 – SLaks 2011-05-24 13:04:32

+0

@SLaks,我想這是這一個:http://stackoverflow.com/questions/6110380/routing-without-naming-controller/6110482 – 2011-05-24 13:08:03

+0

您的帳戶已合併。您現在可以編輯或刪除您之前的問題。 – SLaks 2011-05-24 13:12:47

回答

4

你可以通過指定路由約束做到這一點:

routes.MapRoute(
    "Computers", 
    "{name}", 
    new { controller = "Computers", action = "Index", name = UrlParameter.Optional }, 
    new { page = "laptop|desktop" } 
); 

routes.MapRoute(
    "Gadgets", 
    "{name}", 
    new { controller = "Electronic", action = "Index", name = UrlParameter.Optional }, 
    new { page = "tv|dvd" } 
); 

現在/laptop和/桌面將被路由到ComputersControllerIndex動作,並且/tv/dvd將被路由到GadgetsControllerIndex動作。

0

在你的Global.asax.cs:

routes.MapRoute(
    "ViewLaptop", // Route name 
    "/laptop", // URL with parameters 
    new { controller = "Computers", action = "Laptop" } // Parameter defaults 
); 

這應該這樣做。

+0

嗨,謝謝,我想像你爲每一個頁面所建議的那樣寫潰敗嗎? routes.MapRoute( 「ViewLaptop」,// Route name 「/ laptop」,// URL with parameters new {controller =「Computers」,action =「Laptop」} //參數默認值 ); ? – Danny 2011-05-24 13:23:37

+0

這樣你可以檢查@Darin的回答,他已經把它放在一個更加可變的方式,所以你有一個動作,但有一個'page'變量來決定你想瀏覽的類型。 – 2011-05-24 14:55:14