121

タイトルはそれをかなり要約していると思います:

ASP.NET MVCのRouteLink()との違いは何ですか?ActionLink()

つまり、いつ使用Html.RouteLink()し、いつビューで使用Html.ActionLink()しますか?

4

4 に答える 4

79

アクションとルートは 1:1 の関係である必要はありません。

ActionLink は、アクション名で最初に一致したルートを使用して、アクションに到達するための URL を生成します。

RouteLink は、名前またはルート値によって決定される特定のルートへの URL を生成します。

于 2009-05-14T18:11:24.050 に答える
66

実際には、2 つのメソッドからの出力は同じですが、生成方法が少し異なります。

Html.ActionLink()ActionLinks を高速で簡単に生成できるようにし、レンダリングされるものを基本的に制御できるようにします。あまりにも多くのルートがない場合、またはあまりにも具体的な情報を提供する必要がない場合は、これで問題なく機能します。

このHtml.RouteLink()メソッドはわずかに異なる引数を取るため、物事の処理方法をもう少し詳細に制御できます。シナリオがもう少し複雑な場合、またはより詳細なルート構造がある場合は、この方法を使用する傾向があります。
1 つの例は最近のプロジェクトで、(柔軟性のために) 多くの情報を可能にする 1 つの複雑なルートよりも、すべて非常に単純ないくつかの異なるルートを使用しました。したがって、同じコントローラーに対して 4 つまたは 5 つのルートがあり、すべてデフォルト アクションが指定されています。RouteLinkルート名を指定すると、デフォルトのパラメータが自動的に入力されるため、ほとんどのバージョンを使用しました。

気分に合わせて、プロジェクトに適した方法で使用してください。どちらにも長所/短所はありません(他のものとは一致しません...)。

于 2009-05-14T18:37:12.270 に答える
19

ここに記載されている他の回答に加えて、RouteLink は少し高速であり、ルーティング テーブルを変更したため、間違ったルートと一致することはありません。

于 2009-05-14T18:45:02.923 に答える
12

RouteLink はルートの名前を取得するため、ルート名が信頼でき、かなり一意である場合、使用されるアクション名が変わってもこれは同じになります。代わりに、ActionLink は特定のコントローラーの特定のアクションにリンクします。求めているリンクの種類に応じて、ビューで両方を使用します!

于 2009-05-14T18:10:44.737 に答える