Asp.Net MVC: Wie bekomme ich Html.ActionLink, um ganzzahlige Werte richtig zu rendern?

Ich habe eine asp.net mvc-Anwendung mit einer Route vergleichbar mit:

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

Das Markenzeichen meiner Controller-Aktionsmethode sieht folgendermaßen aus:

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

Aus meiner Sicht mache ich so etwas wie:

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

Während die URL, die mit ActionLink erstellt wird, funktioniert, verwendet sie Abfragezeichenfolgenvariablen anstelle von URL-Umschreibungen.

Zum Beispiel würde es sicherlich / blog/detail/my - slug?year = 2008&month = 7&day = 5 statt / blog/detail/2008/07/05/ my - slug generieren

Gibt es eine Möglichkeit, die generische Variante von ActionLink dazu zu bringen, die ganzzahligen Werte effektiv aufzufüllen, damit die URL wie erwartet angezeigt wird?

Danke vielmals

Jim

5
2022-07-25 17:42:35
Quelle Aktie
Antworten: 0