我们有一个处理艺术家和场地的网站,我们正在用 ASP.net MVC 开发它。
我们在文件夹 (Views/Artists/..)、ArtistsController、ArtistsRepository 中有我们的艺术家视图,并遵守 REST 操作名称,例如 Show、New、Delete 等。
当我们第一次模拟该站点时,在我们的测试环境中一切都运行良好,因为我们的测试 URL 是 /artists/Show/1209 但我们需要更改它以便网站显示为 /artists/Madonna 和 /artists/Foo-Fighters 等
但是,我们如何区分有效的艺术家名称和该控制器的动作名称?!例如,艺术家/PostComment 或艺术家/DeleteComment?我需要允许路由来处理这个。我们默认的 Show 路线是:
routes.MapRoute(
"ArtistDefault",
"artists/{artistName}",
new { controller = "Artists", action = "Show", artistName = ""}
解决这个问题的一种方法是让我们的网站在 /artists 上明显运行,但将我们的控制器重命名为单数 - ArtistController - 而不是 ArtistsController。这将违背我们开始时使用的命名约定(但是,嘿!)。
您还有其他建议吗?如果可能的话,我们还可以根据动词进行路由(因此 PostComment 将是一个 POST,因此我们可能可以路由到该操作),但我不确定这是否可取,更不用说可能了。
谢谢