Prendendo l'esempio di una domanda Stack Overflow come questo l'URL è:
so.com/questions/1142480/adding-redundant-information-to-a-mvc-route
Tuttavia, la parte funzionale del URL è:
so.com/questions/1142480
Il modo in cui questo viene raggiunto è definendo un percorso come questo:
routes.MapRoute(
"questions",
"questions/{id}/{title}",
new { controller = "Questions", action = "Details", title = "" });
È quindi creare un link ad esso in questo modo:
<%= Html.RouteLink("Adding Redundant Information to a MVC Route",
new
{
controller = "Questions",
id = 1142480,
title = "adding-redundant-information-to-a-mvc-route"
}
)
%>
mi immagino il titolo URL viene creato dal titolo effettivo carter inferiore, sostituendo gli spazi con trattini e un paio di altre cose (caratteri di escape/striping non validi).
Fintanto che il percorso SEO appare prima di qualsiasi altro percorso di abbinamento verrà utilizzato il percorso SEO.
Per chiarezza completa il controller sarebbe in realtà essere come questo:
public class QuestionsController : Controller
{
public ActionResult Details(int id)
{
// stuff for display - notice title is not used
}
}
fonte
2009-07-17 10:31:16
Cheers, che ha fatto :) – Damien
Contento di aver potuto aiutare –