2012-04-07 230 views
3

我遇到了html.actionlink的問題。 我定義了兩個途徑:asp.net mvc actionlink使用錯誤的路由

routes.MapRoute(
       "AdminDefault", 
       "Admin/{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
routes.MapRoute(
       "Default", 
       "{controller}/{action}/{id}", 
       new { controller = "Page", action = "Details", id = "0" } 
      ); 

的ActionLink的使用AdminDefault,當我想它使用默認的控制器。我如何在不使用routelink的情況下使用默認路由?

添加更多信息。我有一個簡單的動作(家庭/索引),它顯示了一個視圖(index.cshtml),在該視圖中,我有:

@Html.ActionLink("About", "About", "Home") 

產生的「/管理/首頁/關於」當我想一個url它是「/首頁/關於」defaultadmin路由是這樣,我可以創建以後的任何管理頁面的/管理/控制器/行動的鏈接,但我想默認生成的網址不在管理下。

回答

2

如果您從一個區域中的視圖使用Html.ActionLink,那麼默認情況下它會將區域傳遞到該鏈接。

要覆蓋這一點,你可以調用Html.ActionLink像這樣:

@Html.ActionLink("linkText", "actionName", "controllerName", new {Area = "AreaName"}, null); 

其中「新{面積=‘AREANAME’}」的路由對象值 和「空」是HTML屬性。

因此,您可以使用'new {Area =「」}'

+0

我不使用區域。 – Solmead 2012-04-08 18:20:52

+0

啊,我誤解了。在這種情況下,您必須交換現有規則,然後手動爲管理頁面創建路由。或者你可以添加一個管理區域。 – 2012-04-08 19:23:13