2009-07-17 1 views
5

Come si arriva a questa domanda noterete che il titolo della domanda è nella barra degli indirizzi e il collegamento su cui avete fatto clic per arrivare qui. Non sono sicuro della terminologia esatta, quindi ho trovato difficile cercare, ma come posso fare qualcosa di simile? Cioè, come posso aggiungere dati alla barra degli indirizzi che è puramente per show/motori di ricerca.Aggiunta di informazioni ridondanti a un percorso MVC

Grazie

risposta

6

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 
    } 
} 
+0

Cheers, che ha fatto :) – Damien

+0

Contento di aver potuto aiutare –

2

Una cosa si dovrebbe capire è che il testo alla fine di questo URL è in realtà un manichino. Ad esempio, questo URL:

aprirà questa domanda in modo pulito. Allo stesso modo, un titolo diverso alla tua domanda:

aprirà anche a questa domanda senza errori.

È possibile utilizzare facilmente un algoritmo di analisi del titolo per generare un URL "SEO friendly" completo del titolo e aggiungerlo alla fine del numero della domanda. La tua rotta MVC ignorerà l'ultima parte.

+0

evviva per le informazioni :) – Damien