Asp.Net MVC: Como faço para que Html.ActionLink renderize valores inteiros corretamente?

Eu tenho um aplicativo asp.net mvc com uma rota comparável a:

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}" }
);

Minha marca registrada do método de ação do controlador se parece com:

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

Na minha opinião, estou fazendo algo como:

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

Enquanto o URL que é gerado com as funções do ActionLink, ele faz uso de variáveis ​​de string de perguntas em vez de reformulação do URL.

Por exemplo, certamente criaria / blog/detalhe/meu - slug?ano = 2008&mês = 7&dia = 5 em vez de / blog/detalhe/2008/07/05/ meu - slug

Existe um meio de obter a variação genérica do ActionLink para preencher corretamente os valores inteiros para que o URL apareça conforme o esperado?

Muito Obrigado

Jim

5
2022-07-25 17:42:35
Fonte Compartilhar
Respostas: 0