アーティストや会場を扱う Web サイトがあり、ASP.net MVC で開発しています。
フォルダー (Views/Artists/..)、ArtistsController、ArtistsRepository にアーティスト ビューがあり、Show、New、Delete などの REST アクション名に従います。
最初にサイトをモックアップしたとき、テスト URL は /artists/Show/1209 だったので、すべてがテスト環境でうまく機能しましたが、これを変更して、Web サイトが /artists/Madonna や /artists/Foo-Fighters などのように表示されるようにする必要があります。
しかし、有効なアーティスト名とそのコントローラーのアクション名をどのように区別すればよいのでしょうか?! たとえば、artists/PostComment または artist/DeleteComment? ルーティングでこれを処理できるようにする必要があります。デフォルトの表示ルートは次のとおりです。
routes.MapRoute(
"ArtistDefault",
"artists/{artistName}",
new { controller = "Artists", action = "Show", artistName = ""}
これを回避する方法の 1 つは、Web サイトを /artists で目に見えるように実行することですが、コントローラーの名前を ArtistsController ではなく単一の ArtistController に変更します。それは、私たちが始めたときに使用した命名規則に反することになります (しかしねえ!)。
他におすすめはありますか?可能であれば、動詞に応じてルーティングすることもできます (したがって、PostComment は POST になるため、おそらくそのアクションにルーティングできます) が、それが可能であるどころか、望ましいかどうかはわかりません。
ありがとう