私は、ASP.NET MVCのルートマッチングの問題をデバッグしています。 URLは{foo}/Somewhere/{controller}/{action}/{id}のように定義されています。各セグメントにはルート上にデフォルト値が設定されています。ASP.MVCのデフォルトルート値マッチングの問題
http://hostname/bar/Somewhereを参照しようとすると、ルートが一致します。 http://hostname/Somewhereを試してみると(fooセグメントを除いて)、ルートは一致しません。
Phil Haackからroutedebuggerをインストールしましたが、デフォルト設定が正しく設定されていることがわかりましたが(コントローラ=ホーム、アクション=インデックス、id = UrlParameter.Optional、foo = bar)、ルートはまだ一致しません私は404を得ます。
「静的」セグメントの前に「optionnal」セグメントを持たないように経路を修正しようとしました:Somewhere/{controller}/{action}/{id}/{foo} 。このルートでは、url(http:// hostname/Somewhere/barとhttp://hostname/Somewhere)が期待どおりに動作しています。
MVCには、ハードコードされたものの前に "optionnal"セグメントを使用できないという制限(またはバグ)がありますか?あなたの助けのための
おかげで、 ファビアン
なぜ私は省略できないのか分かりませんが、私はデフォルト値を提供しています。 –
これは、それがどのように設計されているのか、そして主にパフォーマンス上の理由からです。 – Aliostad
あなたの答えをありがとう。 –