0
私はコントローラHome
とIndex
の方法で1つの領域Area1
を持っています。
コントローラHome
とIndex
という方法で別のエリア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 /ホーム/インデックスに行く:( – 1110
うーん、それは奇妙だ、私はいくつかを見つけました他のリンクはほぼ同じことを言っています:http://www.f15ijp.com/2011/04/30/specifying-what-area-an-actionlink-should-use/そしてこちらもhttp://stackoverflow.com/質問/ 2036305 /どのようにアクション名を指定するかを指定する方法です。あなたのエリアが正しく設定されていて、特別なルーティングが設定されていない場合、なぜ動作しないのかわかりません。あなたは、「Area」という単語が大文字の「A」はいと綴られていると試しましたか? – Nope
はい私は 'A'を試しました。多分ルーティングが私のトラブルを引き起こしているので、私はルーティングで質問を更新しました。 – 1110