【发布时间】:2018-05-06 12:43:21
【问题描述】:
我想将所有 api 调用路由到一个控制器。我使用 MVC,我想做的是拥有动态端点,所以基本上你使用的任何 url 都会指向一个执行逻辑的控制器。让它变得更棘手的是我想知道正在调用哪个控制器,例如,如果有一个 Get at:“https://{url}/project/id”,我希望它指向我的“动态" 控制器并将 "project" 作为参数(或可以告诉我使用了哪个端点的东西),所以我知道调用了哪个控制器。
我知道这不是设置 API 的好方法,但目前这似乎最符合我们的需求。
[编辑] 我看到我把我的问题搞砸了,因为我混淆了 MVC 控制器和 ApiController。我最终在这个线程中使用了答案:Route all Web API requests to one controller method
【问题讨论】:
-
路由框架目前正在为你做这件事。为什么要自定义它?你想做什么。可能有其他解决方案可以解决您的问题。
-
如果您subclass
RouteBase,您可以按字面意思对路线进行编程以做任何您想做的事情。您可以使用RouteData.DataTokens 传递有关当前与应用程序其余部分匹配的路由的任何元数据。 -
@Shyju 问题是我希望能够提供一个 Rest API,但所有业务逻辑都存储在数据库中,即使哪些端点可用也将存储在数据库中并且可以更改,因此我需要其余 api 是动态的,这样我才能捕获 url 并进行正确的数据库调用。 NightOwl888 看起来很有趣且充满活力,可以做我想做的事,请检查一下,谢谢。
标签: c# asp.net-mvc controller routing