Что касается SLUG в MVC

Вопрос:

Работа над MVC-приложением, которое в основном представляет собой базу данных моего сайта /Directory.

Зарегистрированные объявления вызываются следующим образом:

something.com/Listings/View/{some-guid}

Можно ли отображать в этом формате:

something.com/{slug version of the destination name}

или

something.com/kfc-arabia

Это было бы очень легко поделиться ссылками с клиентами, а также SEO Friendly.

Лучший ответ:

Я думаю, что будет сложно сопоставить ваш пул в корне вашего приложения, поскольку это не позволит использовать другие маршруты в вашем приложении. Однако, если вы можете достичь чего-то вроде того, чего хотите, делая следующее

something.com/directory/{slug}

При этом вам просто нужно просто правило, чтобы соответствовать этому подходящему действию, которое принимает ваш slug в качестве параметра.

например

context.MapRoute("Listings_by_slug", 
                 "directory/{slug}", 
                  new { controller = "Listings", 
                  action = "ViewBySlug" });

и ваше действие будет чем-то вроде этого

 public ActionResult ViewBySlug(string slug){
      var listingGuid = _service.GetGuidFromSlug(slug);
      return RedirectToAction("View", "Listing", new { id = listingGuid);
}

ОБНОВИТЬ

Если вы действительно этого хотите, тогда у вас может быть такой маршрут, как

context.MapRoute("Listings_by_slug", 
                 "{slug}", 
                  new { controller = "Listings", 
                  action = "ViewBySlug" });

Вы хотите поместить это после других маршрутов, которые вам нужны, поскольку этот маршрут соответствует чему-либо вашему приложению. Фактически это должен быть ваш последний объявленный маршрут. Кроме того, у вас не может быть элемента управления с тем же именем, что и слизняк

Оцените статью
TechArks.Ru
Добавить комментарий