На примере вопроса переполнением стека, как этот 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
}
}
Приветствия, это сделали :) – Damien
Рад, что я мог помочь –