0

私はコントローラHomeIndexの方法で1つの領域Area1を持っています。
コントローラHomeIndexという方法で別のエリアArea2を作成しました。
Area1にはIndexページをArea2に開くべきアクションリンクがあります。
アクションリンクの問題とasp mvcプロジェクトの領域

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

しかし、私は、このリンクをクリックしたときには、最初Area1/Home/Indexに行きます!
なぜこのようなことが起こっていますか?これはこのようなものか、直接Area2/Home/Indexに行くことができますか?
Area1/Home/Indexではいくつかのパラメータが必要ですが、これが発生したときにこの値がnullまたは間違っていて問題が発生するため、これが問題になります。私は間違ったことをする必要があります。 更新 エリア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

+0

うーん、それは奇妙だ、私はいくつかを見つけました他のリンクはほぼ同じことを言っています:http://www.f15ijp.com/2011/04/30/specifying-what-area-an-actionlink-should-use/そしてこちらもhttp://stackoverflow.com/質問/ 2036305 /どのようにアクション名を指定するかを指定する方法です。あなたのエリアが正しく設定されていて、特別なルーティングが設定されていない場合、なぜ動作しないのかわかりません。あなたは、「Area」という単語が大文字の「A」はいと綴られていると試しましたか? – Nope

+0

はい私は 'A'を試しました。多分ルーティングが私のトラブルを引き起こしているので、私はルーティングで質問を更新しました。 – 1110

関連する問題