2

の結果の違いは何ですか

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{*id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

「*」は、それがない場合を除いて何をしますか。

4

2 に答える 2

4

idアスタリスクでマークすると、「キャッチオール」パラメーターとしてフラグが立てられます。

/Content/List/1 --> id = "1"

/Content/List/My/Content --> id = "My/Content"

ただし、次のルートで"{controller}/{action}/{id}"は、2 番目の URL はまったく一致しません。

MSDNのキャッチオール パラメーターの詳細:

この方法で追加のセグメントを処理するには、最後のパラメーターにアスタリスク (*) を付けます。これは、キャッチオール パラメーターと呼ばれます。キャッチオール パラメーターを含むルートは、最後のパラメーターの値を含まない URL にも一致します。次の例は、不明な数のセグメントに一致するルート パターンを示しています。クエリ/{クエリ名}/{*クエリ値}

于 2013-07-28T09:10:46.230 に答える
0

ここに同様の質問があります。2 つ目は、Catchall マッピングでキャッシュされるようにするだけです。

于 2013-07-28T09:14:59.077 に答える