Параметры по умолчанию для ASP.NET MVC

Asked
Viewd926

2

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

    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.

Я упустил что-то очевидное?

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

    meandmycode13 апреля 2009, 12:47

2 ответов

2

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

2

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