Cshtmlページで動的にURLを生成しているところです。 Url.RouteUrl()とUrl.Action()の違いは何ですか?
URLを生成するためにどちらを使用する必要がありますか?また、実装に関して両方にどのような違いがありますか?
前もって感謝します。
RouteUrl
はルート名に基づいてURLを生成しました。同様のパラメータを持つ複数のルートがある場合、Action
メソッドは間違ったルートを選択する可能性があります-ルート定義の順序に基づいて機能します。これは、ルートにオプションのパラメータがある場合に発生する可能性があります。
特定のルートURLが使用されることを確認したい場合は、このルート名を渡してRouteUrl
を呼び出す必要があります。ルート名は一意であり、ルートを明確に識別します。
もう1つの違いは、Action
はMVC固有(コントローラー名とアクション名を使用)であるのに対し、RouteUrl
は一般的であり、MVCなしで使用できることです(WebFormsでルーティングできます)。
Url.RouteUrl
を使用すると、特定のルートを名前で指定できます。これはforceそのルートの使用法になります。 Url.Action
は、基準に一致する最初のルートを選択するだけです。