Вот маршрут создания с вашим существующим маршрутом:
routes.MapRoute(
"ProjectCreate", // Route name
"project/create", // URL with parameters
new { controller = "Project", action = "Create" } // Parameter defaults
);
routes.MapRoute(
"Project", // Route name
"project/{url}/{action}", // URL with parameters
new { controller = "Project", action = "Details" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Имя параметра URL вашего проекта должно быть url
, а не projectUrl
, так как это имя значения маршрута.
Вот мой ProjectController
:
public ActionResult Details(string url)
{
return View();
}
public ActionResult Create()
{
return View();
}
При переходе по любому из этих URL-адресов выполняется соответствующее действие:
- / project / create
- / project / test
- / project / test / details
И передайте «test» в качестве значения URL.
Стоит отметить, что маршруты обрабатываются в порядке их добавления , поэтому вам нужно убедиться, что они идут в порядке от , наиболее специфичном для наиболее общего , как выиметь, а не перевернуть это.