3

ASP.Net MVC3 はクールですが、この質問はプログラミングの問題よりも好奇心から出たものです。「インデックス」アクションを持つ「StarController」がある「Cosmos」という領域があるとします。

さて、これへのアクション リンクを作成しなければならないとしたら、これら 2 つのステートメントの違いは何でしょうか?

Html.ActionLink("Stars", "Index", "Stars", new { area = "Cosmos" }, null)

Html.ActionLink("Stars", "Index", "Cosmos/Stars")

よく見ると、まったく同じものです。実際に同じことを行う場合、匿名型 { area = "Cosmos" } の使用は何ですか?

4

1 に答える 1

3

2 番目の例では、間違ったcontrollerName引数を設定しています。Cosmos/Starsコントローラーをそのように呼び出すことはできません。ヘルパーは単に引数をそのまま使用するため、正しい結果が生成されますが、ルートが特定のスタイルになると想定しています。ルーティング定義を変更した時点で、このリンクは引き続き同じマークアップを生成するため、間違っている可能性があります。最初の例では、ハードコードされた URL パターンに依存しなくなりました。ルートとエリアがどのように構成されていても、常に正しい URL が生成されます。

于 2012-03-21T07:21:12.157 に答える