8
に等しいとき、私は自分のアプリケーションのために定義された次のルートを持っているアクションを省略:MVC ActionLinkのはアクションがデフォルトルート値
routes.MapRoute(
"Referral", // Route name
"{referralCode}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
そして私は私のAdminControllerのindexアクションに行くためにActionLinkのを作成しようとしている:
@Html.ActionLink("admin", "Index", "Admin")
しかし、ビューを実行するActionLinkのは、(indexアクション値が省略された)としてレンダリング:
<a href="/Admin">admin</a>
通常これは問題ありませんが、「紹介」ルートと衝突しています。
注:私は代わりのような別のアクションレンダリングするためにActionLinkのを使用している場合は、「デフォルトを、」ActionLinkのは正しくレンダリング:
<a href="/Admin/Default">admin</a>
「デフォルト」アクションが信じるように私をリード正しくレンダリングするという事実問題はルートに指定されたデフォルト値と関係があります。 ActionLinkが強制的に「インデックス」アクションを実行するように強制する必要はありますか?
ありがとうございました。私は "Default"ルートのルートデフォルトからアクションとコントローラの両方を削除し、ReferralCode = UrlParameter.Optionalを "Referral"ルートに指定しました。 – rjygraham