2009-07-17 15 views
5

A medida que entran a esta pregunta se dará cuenta el título de la cuestión está en la barra de direcciones y el enlace que ha hecho clic para llegar aquí. No estoy seguro de la terminología exacta, por lo que me resultó difícil buscarla, pero ¿cómo puedo hacer algo similar? Es decir, ¿cómo puedo agregar datos a la barra de direcciones que es puramente para mostrar/motores de búsqueda.Adición de información redundante a un MVC Ruta

Gracias

Respuesta

6

Tomando el ejemplo de una pregunta de desbordamiento de pila como éste la URL es:

so.com/questions/1142480/adding-redundant-information-to-a-mvc-route

Sin embargo, la parte funcional de la URL es:

so.com/questions/1142480

La forma en que esto se logra es mediante la definición de una ruta como esta:

routes.MapRoute(
    "questions", 
    "questions/{id}/{title}", 
    new { controller = "Questions", action = "Details", title = "" }); 

A continuación, crea un enlace a ella como esto:

<%= Html.RouteLink("Adding Redundant Information to a MVC Route", 
     new 
     { 
      controller = "Questions", 
      id = 1142480, 
      title = "adding-redundant-information-to-a-mvc-route" 
     } 
    ) 
%> 

me podría imaginar el título URL se crea a partir del título real de carcasa inferior, en sustitución de espacios con guiones y un par de otras cosas (escapando/rayas malos personajes).

En tanto que su ruta SEO aparece antes de cualquier otra ruta coincidente se utilizará la ruta de SEO.

Para mayor claridad completa el controlador realidad sería así:

public class QuestionsController : Controller 
{ 
    public ActionResult Details(int id) 
    { 
     // stuff for display - notice title is not used 
    } 
} 
+0

Cheers, que lo hizo :) – Damien

+0

Me alegro de poder ayudar a –

2

Una cosa que debe entender es que el texto al final de esta URL es en realidad un maniquí. Por ejemplo, la siguiente URL:

se abrirá esta pregunta limpiamente. Del mismo modo, un título que no sea su pregunta:

abrirá también esta pregunta sin errores.

que pueda usar algún algoritmo título-análisis para generar una URL "SEO" para usted completa con el título, y añadirlo al final del número de la pregunta. Su ruta MVC simplemente ignorará la última parte.

+0

aplausos por la información :) – Damien

Cuestiones relacionadas