回答:
アクションとルートは1対1の関係である必要はありません。
ActionLinkは、最初に一致したルートをアクション名で使用してアクションに到達するためのURLを生成します。
RouteLinkは、名前またはルート値のいずれかによって決定される特定のルートへのURLを生成します。
実際には、2つのメソッドからの出力は同じですが、わずかに異なる方法で生成されます。
Html.ActionLink()
ActionLinksをすばやく簡単に生成でき、レンダリングされる内容を基本的に制御できます。あなたがあまりにも多くのルートを持っていない場合、またはあまりにも多くのまたはあまりにも具体的な情報を与える必要がない場合、これはうまく動作します。
このHtml.RouteLink()
メソッドは引数が少し異なるため、処理方法をもう少し詳細に制御できます。この方法は、シナリオが少し複雑な場合、またはルート構造が詳細な場合に使用する傾向があります。
1つの例は、私が(柔軟性のために)多くの情報を可能にする1つの複雑なルートよりも、かなり単純な複数の異なるルートを持っていた最近のプロジェクトです。したがって、同じコントローラーに対して4つまたは5つのルートが作成され、すべてデフォルトのアクションが指定されました。RouteLink
ルート名を指定すると、デフォルトのパラメーターが自動的に入力されるため、主にバージョンを使用しました。
あなたが好きなように、そしてあなたのプロジェクトにとって意味のあるものとしてそれらを使ってください。それらのどちらにも実際には利点/欠点はありません(それは他のものとは一致しません...)。
ここに記載されている他の回答に加えて、RouteLinkは少し高速であり、ルーティングテーブルを変更したため、間違ったルートと一致することはありません。
RouteLinkはルートの名前を取得するため、ルート名が信頼でき、かなり一意である場合、使用するアクション名が変更されても同じになります。代わりに、ActionLinkは特定のコントローラーの特定のアクションにリンクします。どちらのリンクを使用するかによって、両方のビューで使用します。