2009-04-13 15 views
2

私は次のように新しいルートを作成しました:ASP.NET MVCのデフォルトパラメータ

routes.MapRoute(
    "BlogYMD", 
    "blog/date/{year}/{month}/{day}", 
    new { controller = "Blog", action = "Date", year = "2009", month="01", day="01" }); 

ビューは単純に年、月、日の連結を返します。これは、URLのようなのために正常に動作します:

http://localhost/blog/date/2009/01/01

しかし、私はこのURLを入力したとします。

http://localhost/blog/date/2009

私は、月と日のデフォルト値は、日付のメソッドに渡されることを期待します。しかし、そうではありません。メソッドのすべてのパラメータはnullとして処理されます。

明らかなものがありませんか?

+0

どのようにそれらがnullとして渡されますか、あなたは整数としてパラメータを持つべきです、mvcのバインディングシステムはそれらをキャストします。 – meandmycode

答えて

2

残りのルートは表示されませんが、2番目のURLと一致するglobal.asax.CS(たとえばデフォルトルート)には、このルートの上に別のルートがあると思われます。

+0

答えのための乾杯。 –

2

ルートを宣言する順序は重要です。カスタムルートは、デフォルトよりも前に宣言する必要があります。

関連する問題