2010-12-15 11 views
2

で空のパラメータを許可し、私は今まで自動化されたプロセスによって呼び出さなければならないルートを持っています。理想的には、私はあなたが途中でそのオプションのパラメータをacheiveだろうか はMVCルート

/Process/Created/Filename/Text (with file and type) 
/Process/DirectoryListing//Text (with type only) 
/Process/Created/Filename/  (with file only) 
を呼び出すことができるようにしたいのですが?私が示したルートの例では、 file = "", type = ""をルートに追加しても、私は次のようになります:

HTTPエラー400 - 不正リクエスト。

+0

私は同様の問題を抱えていました:http://stackoverflow.com/questions/4743431/need-help-canonicalizing-an-http-get-form-in-asp-net-mvc基本的に、ダーリンは正しいです。最後のパラメータだけがオプションになります。 – danludwig

+0

これを参照してください、http://bit.ly/dem6F5 – user960567

答えて

3

ルートの途中でオプションのパラメータを使用することはできません。明らかな理由により、の最後のパラメータはオプションでも、ルーティングエンジンが異なる可能性のあるケース間で曖昧さを解消することもできません。

+5

なぜ、 '/ /'がパスに現れないのか分かりません... – configurator

0

私はあなたが私はこの1つ前に別のルートを定義するオプションの真ん中のパラメータについてfile = UrlParameter.Optional, type = UrlParameter.Optional

を追加する必要があります信じています。

+0

私は 'ファイル= UrlParameter.Optional'は両方の行方不明のケースを修正すると思いますが、 URLに)。他のルートをどのように定義しますか? 'Process/{change} // {type}'は動作しません。 – configurator

+0

ええ、それはうまくいかないでしょう。 ..../file- {file}/type- {type}、クエリ文字列パラメタなどを行うことができます。 –