Я определил следующий маршрут для простого блога.Проблема с использованием Url.Action() при попытке создать дружественные и «взломанные» URL-адреса
routes.MapRoute(
"Blog",
"blog/{year}/{month}/{day}",
new { controller = "Blog", action = "Index" },
new { year = @"\d{4}", month = @"\d{2}", day = @"\d{2}" }
);
URL-адрес должен быть в состоянии "взломать", чтобы выполнить следующие действия:
- http://abc.com/blog/2010 -> показывает все сообщения в 2010
- http://abc.com/blog/2010/01 -> показывает все сообщения в январе 2010
- http://abc.com/blog/2010/01/25 -> все сообщения в Январь 25th, 2010
Я создал контроллер, который прекрасно справляется с этим действием. Однако мне не удается создать ссылки в моих представлениях, используя Url.Action()
.
К примеру этого ...
var d = new DateTime(2010, 1, 25);
Url.Action("Index", "Blog", new { year=d.Year, month=d.Month, day=d.Day});
... генерирует URL, как это выглядит следующим образом:
Я предпочел бы, как это генерировать url, который похож на URL-адреса в списке выше.
Есть ли способ, что я могу использовать Url.Action()
или Html.ActionLink()
для создания URL-адресов в формате я хочу?
Вы пригвоздили его. Спасибо за Ваш ответ. Отлично работает. – jessegavin