У нас есть веб-сайт, посвященный артистам и концертным площадкам, и мы разрабатываем его на ASP.net MVC.
У нас есть наши представления художников в папке (Views / Artists / ..), ArtistsController, ArtistsRepository и мы придерживаемся названий действий REST, таких как Show, New, Delete и т. Д.
Когда мы впервые создали макет сайта, в нашей тестовой среде все работало хорошо, так как наши тестовые URL были / Artist / Show / 1209
но нам нужно изменить это, чтобы веб-сайт отображался как / Artist / Madonna и / Artist / Foo-Fighters и т. д.
Однако, как мы можем различить действительные имена исполнителей и имена действий для этого контроллера ?! Например, исполнители / PostComment или художники / DeleteComment? Мне нужно, чтобы маршрутизация справилась с этим. Наш маршрут по умолчанию:
routes.MapRoute(
"ArtistDefault",
"artists/{artistName}",
new { controller = "Artists", action = "Show", artistName = ""}
Одним из способов решения этой проблемы является то, что наш веб-сайт будет работать на / Artist, но наш контроллер будет переименован в единственное число - ArtistController - в отличие от ArtistsController. Это противоречило бы соглашениям об именах, которые мы использовали, когда начинали (но эй!).
У вас есть другие рекомендации? Если возможно, мы могли бы также маршрутизировать в зависимости от глаголов (поэтому PostComment был бы POST, чтобы мы могли, возможно, направить к этому действию), но я не уверен, что это целесообразно, не говоря уже о возможном.
Спасибо