Вот как я делал это в прошлом:
Вам необходимо сохранить в базе данных столбец с фрагментом, на который ссылается каждый элемент. Затем создайте маршрут, подобный следующему:
routes.MapRoute("PreviewLink",
"/preview/{slug}",
new { controller = "Preview", action = "Details" }
);
Так что это вызовет метод Details
для PreviewController
следующим образом:
class PreviewController : Controller
{
public ActionResult Details(string slug)
{
var model = db.GetItemBySlug(slug);
return View("Details", model);
}
}
По сути, вы получите слаг в виде строки в вашем методе действия, запросите в базе данных предмет с соответствующим слагом и отобразите его. По сути, мы просто заменяем целое число id
на строку slug
.
Надеюсь, это прояснит для вас!