Asp.Net MVC: как заставить Html.ActionLink правильно отображать целочисленные значения?

У меня есть приложение asp.net mvc с путем, сопоставимым с:

routes.MapRoute("Blog", 
    "{controller}/{action}/{year}/{month}/{day}/{friendlyName}",                          
    new { controller = "Blog", action = "Index", id = "", friendlyName="" }, 
    new { controller = @"[^\.]*", 
          year = @"\d{4}", 
          month = @"\d{2}", 
          day = @"\d{2}" }
);

Мой товарный знак метода действия контроллера выглядит так:

public ActionResult Detail(int year, int month, int day, string friendlyName)
{ // Implementation... }

На мой взгляд, я делаю что-то вроде:

<%= Html.ActionLink<BlogController>(item => item.Detail(blog.PostedOn.Year, blog.PostedOn.Month, blog.PostedOn.Day, blog.Slug), blog.Title) %>

Хотя URL-адрес, созданный с помощью ActionLink, работает, он использует переменные строки запроса, а не переформулировку URL-адреса.

Например, будет получено / blog/detail/my-slug?year = 2008&month = 7&day = 5 вместо / blog/detail/2008/07/05/ my-slug

Есть ли способ заставить обычную версию ActionLink правильно заполнять целочисленные значения, чтобы убедиться, что URL-адрес отображается так, как ожидалось?

Большое спасибо

Джим

5
2022-07-25 17:42:35
Источник Поделиться
Ответы: 0

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