2009-04-13 5 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

Как они проходят через нуль, вы должны иметь параметры как целые числа, система привязки в mvc возьмет их. – meandmycode

ответ

2

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

+0

Приветствия за ответ. – 2009-04-13 13:03:15

2

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

Смежные вопросы