【发布时间】:2026-02-03 00:50:02
【问题描述】:
Web Api 2 global route prefix for route attributes? 有人问过这个问题。
我已经在使用属性路由和类级别路由前缀。但是,从某种配置(可能是代码)中,我想为所有属性路由添加另一个前缀。我不想创建自定义路由属性以在我的代码库中使用,只是内置的。
这可能吗?
简单地说,我想走我的路线 /a/1/b/2 和 /x/3/y/2/z/1 并将它们转换为(尽管它不一定需要是 /api 前缀) /api/1/b/2 和 /api/x/3/y/2/z/1
【问题讨论】:
-
一种方法是创建一个自定义路由处理程序(搜索 IRouteHandler)
-
开销更大,但另一种选择是在您的服务器中进行配置。假设 IIS,您可以使用虚拟目录/应用程序,甚至可以使用 nginx 之类的东西修改路由。不确定这是否是一个选项,但为了完整起见提及它。
-
我将不得不看看使用自定义路由处理程序。以前从来没有调查过。如果它可以用作一种横切关注点,只需替换或扩展请求管道中的现有关注点,那么这可能是一个非常优雅的解决方案。
标签: c# asp.net asp.net-web-api