David_Wimbley
Вы пытаетесь использовать атрибуты маршрута, а затем RouteConfig. Вам нужно выбрать тот или иной метод и придерживаться его.
Если вы решите использовать maproutes, удалите атрибут route в своем действии
Это был бы правильный маршрут для использования:
routes.MapRoute(
name: "Description",
url: "Home/Description/{ItemType}/{Slug}",
defaults: new { controller = "Home", action = "Description", ItemType = UrlParameter.Optional, Slug = UrlParameter.Optional }
);
Где ItemType и Slug - это те же имена, что и параметры в вашем действии
Вы также можете сделать
routes.MapRoute(
name: "Description",
url: "{controller}/{action}/{ItemType}/{Slug}",
defaults: new { controller = "Home", action = "Description", ItemType = UrlParameter.Optional, Slug = UrlParameter.Optional }
);
Как еще один вариант при использовании метода MapRoute.
Если вы решите использовать атрибуты маршрута. Вам нужно добавить эту строку в RouteConfig и удалить любой существующий код маршрутизации, связанный с вашим действием описания.
routes.MapMvcAttributeRoutes();
Тогда ваш контроллер будет украшен атрибутами, определяющими ваш маршрут.
[RoutePrefix("myhome")]
public class HomeController : Controller
{
[Route("Index/{ItemType}/{Slug}")]
public ActionResult Index(string ItemType, string Slug)
{
return View();
}
}
URL-адрес в этом примере будет следующим http://localhost/myhome/index/itemtypehere/slugnamehere
И тогда бы парам Пункттип == itemtypehere и слизня парам будет == slugnamehere