4

どうやって:

@Html.ActionLink("MyText","Index","Home")

翻訳:

<a href="/Home">MyText</a>

以前は印刷していましたが

<a href="/Home/Index">MyText</a>

次の方法ですべてのコントローラーのデフォルトアクションを追加した後:

        routes.MapRoute(
            "DefaultActionToIndex",
            "{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional });

ヘルパーメソッドは、渡されたものをすべて印刷するだけでなく、ルートディクショナリを解決して、デフォルトとして設定されているため「インデックス」は不要であることがわかります。

問題はどのようにですか?

4

1 に答える 1

5

ルーティングは、着信要求と URL 生成の両方の方法で機能 System.Web.Routing.RouteTable.Routesし、提供された値 (この場合は{ controller = "Home", action = "Index" }) でルートを (順番に) テストし、一致する最初のルートを使用します。パラメータにデフォルト値があり、指定された値がそのデフォルト値と等しい場合、URL には含まれません。

于 2012-05-17T02:05:08.567 に答える