Ho problemi con un vincolo specifico che sto cercando di impostare su un percorso. Il mio URL deve assomigliare a questo: http://hostname/id-my-title-can-be-that-long dove id è composto solo da cifre e il titolo è carattere minuscolo con separatore di trattini. Anche l'id e il titolo sono separati da un trattino. Ad esempio: http://hostname/123-my-title.ASP.NET MVC regex route constraint
Ecco la mia definizione della rotta:
routes.MapRoute(
"Test",
"{id}-{title}",
new { controller = "Article", action = "Index" },
new { id = @"(\d)+", title = @"([a-z]+-?)+" }
);
L'URL viene correttamente generata con l'aiuto del HTML:
<%: Html.ActionLink("My link", "Index", "Article", new { id = Model.IdArticle, title = Model.UrlTitle }, null) %>
in cui, ovviamente, Model.IdArticle è un Int32 e Model.UrlTitle un stringa preformata del mio titolo che corrisponde alle mie esigenze (solo lettere minuscole, spazio sostituito da trattini).
Il problema è che quando si segue il collegamento, il metodo & del controller corretto non viene chiamato, cade sulla rotta successiva che è errata.
Per la cronaca, io sono su ASP.NET MVC 2.
Chiunque ha un'idea?
Grazie in anticipo, Fabian
Infine, separeremo l'ID dal titolo con un punto. Mi sto ancora chiedendo perché questo non funziona, ma non lo blocca più. Grazie per l'aiuto! –