0

我有一個區域Area1與控制器Home和它的Index方法。
我也創建了另一個區域Area2與控制器Home和它的Index方法。
Area1我有一個操作鏈接,該鏈接應在Area2中打開Index頁面。
問題與行動鏈接和區域在asp mvc項目

@Html.ActionLink("Link to another area index", "Index", "Home", new { area = "Area2" }, null) 

但是,當我點擊這個鏈接就可以先去Area1/Home/Index
這是爲什麼發生。這是必須是這樣或它可以直接去Area2/Home/Index
這使我的問題,因爲在Area1/Home/Index我需要一些參數,當發生這種情況時,這個估價器無效或錯誤,並讓我的問題。我必須做錯事。 更新 區域1路由

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.Routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

      context.MapRoute(
       "Area1_home", 
       "{country}/{city}", 
       new { controller = "Home", action = "Index", country = UrlParameter.Optional, city = UrlParameter.Optional } 
      ); 

      context.MapRoute(
       "Area1_default", 
       "Area1/{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 

區域2路由:

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "Area2_default", 
       "Area2/{controller}/{action}/{id}", 
       new { controller="Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 

回答

1

嘗試:

Html.ActionLink("Link to another area index", "Index", "Home", new { Area = "Area2" }, new{}); 
+0

還是到區域1 /首頁/指數第一:( – 1110 2012-02-10 20:42:40

+0

嗯,這很奇怪,我發現了一些更多鏈接說幾乎相同的事情:http://www.f15ijp.com/2011/04/30/specifying-what-area-an-actionlink-should-use/,也在這裏http://stackoverflow.com/問題/ 2036305 /如何到指定-的區域名稱功能於一個動作鏈接。如果你的區域設置正確並且沒有配置特殊路由,那麼我不知道爲什麼它不起作用。你確實嘗試過拼寫大寫字母「A」的「區域」一詞嗎? – Nope 2012-02-10 20:48:04

+0

是的,我試過'A'。我更新了路由問題,因爲路由可能會讓我的麻煩。 – 1110 2012-02-10 20:53:47