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


120

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

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

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

回答:


78

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

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

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


すばらしいブログ投稿の+1。本当に便利です。そして、可能性が多すぎることを示しています。MSの人は、最速でのみ実装する必要があります。しかし、人々はむしろ空想のラムダが最も遅いものを使用します。
Robert Koritnik 2009年

ちょっとありがとうしかし、私はリンクが壊れていると思います到達しませんでした。plsは再度リンクを提供してくれます。ありがとう
user1006544

5
例を挙げてもらえますか?
MaylorTaylor 2014

67

実際には、2つのメソッドからの出力は同じですが、わずかに異なる方法で生成されます。

Html.ActionLink()ActionLinksをすばやく簡単に生成でき、レンダリングされる内容を基本的に制御できます。あなたがあまりにも多くのルートを持っていない場合、またはあまりにも多くのまたはあまりにも具体的な情報を与える必要がない場合、これはうまく動作します。

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

あなたが好きなように、そしてあなたのプロジェクトにとって意味のあるものとしてそれらを使ってください。それらのどちらにも実際には利点/欠点はありません(それは他のものとは一致しません...)。



12

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.