Параметры ASP.NET MVC по умолчанию - PullRequest
2 голосов
/ 13 апреля 2009

Я создал новый маршрут, подобный следующему:

   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.

Я что-то упускаю из виду?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2009

Порядок, в котором вы объявляете маршруты, важен. Вы хотите, чтобы ваш собственный маршрут был объявлен до значения по умолчанию.

2 голосов
/ 13 апреля 2009

Вы не показываете остальные ваши маршруты, но я подозреваю, что у вас есть другой маршрут выше этого в вашем global.asax.CS (например, маршрут по умолчанию), который соответствует второму URL.

...