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