2009-07-17 2 views
5

Как вы пришли к этому вопросу, вы заметите, что заголовок вопроса находится в адресной строке и ссылке, на которую вы нажали, чтобы попасть сюда. Я не уверен, что точная терминология так трудно найти, но как я могу сделать что-то подобное? То есть, как я могу добавить данные в адресную строку, которая предназначена исключительно для шоу/поисковых систем.Добавление избыточной информации на трассу MVC

Благодаря

ответ

6

На примере вопроса переполнением стека, как этот URL-адрес является:

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

Однако функциональная часть URL является:

so.com/questions/1142480

Как это достигается путем определения маршрута, подобного этому:

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

Вы затем создать ссылку на него, как это:

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

Я бы себе название URL создается из фактического заголовка на нижней части корпуса, заменяя пробелы на тире, и несколько других вещей (экранирование/чередование плохих символов).

До тех пор, пока ваш маршрут SEO появится перед любым другим подходящим маршрутом, будет использоваться маршрут SEO.

Для полной ясности контроллер фактически будет так:

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

Приветствия, это сделали :) – Damien

+0

Рад, что я мог помочь –

2

Одна вещь, вы должны понимать, что текст в конце этого URL на самом деле фиктивная. Например, этот URL:

откроет этот вопрос чисто. Точно так же, название другой, чем ваш вопрос:

также откроет этот вопрос без ошибок.

Вы можете легко использовать какой-либо алгоритм разбора заголовков для создания URL-адреса, ориентированного на «SEO», с полным заголовком и добавлением его в конце номера вопроса. Ваш маршрут MVC будет просто игнорировать последнюю часть.

+0

приветствия для info :) – Damien

 Смежные вопросы

  • Нет связанных вопросов^_^