ルートがアウトバウンド URLと一致すると、ルーティング システムは、現在のリクエストの値も参照して、ルートの URL パターン内の各セグメント変数の値を見つけようとします。必要に応じて、ルーティング システムは着信 URLのセグメント変数値を再利用します。
抜粋は、Pro Asp.Net MVC 4本からのものです。
ルーティング システムは、Html.ActionLink メソッドに指定されたどのパラメーターよりも URL パターンで前に出現するセグメント変数の値のみを再利用します。次のようなリンクを作成しようとしたとします。
@Html.ActionLink("Click me", "List", "Catalog", new {color="Aqua"}, null)
色の値を指定しましたが、ページの値は指定しませんでした。ただし、URL パターンではページの前に色が表示されるため、ルーティング システムは着信 URL の値を再利用せず、ルートは一致しません。
... この動作に依存せず、URL パターン内のすべてのセグメント変数に値を指定することを強くお勧めします。この動作に依存することで、ユーザーがリクエストを行う順序について推測することになります
注: 抜粋が参照しているルートは次のように定義されます。
routes.MapRoute("MyRoute", "{controller}/{action}/{color}/{page}");
a)
ルーティング システムは、Html.ActionLink メソッドに指定されたどのパラメーターよりも URL パターンで前に出現するセグメント変数の値のみを再利用します。
ルーティング システムが、 に提供されたパラメータよりもURL パターンの後半にあるセグメント変数の値を再利用した場合、何が問題になる可能性がありますか?Html.ActionLink
b)
この動作に依存せず、URL パターン内のすべてのセグメント変数に値を指定することを強くお勧めします。この動作に依存することで、ユーザーがリクエストを行う順序について推測することになります
すべてのセグメント変数に値を指定しないことが、ユーザーがリクエストを行う順序についての仮定にどのように変換されるのか理解できません?!
とても有難い