路由到硬编码控制器

本文关键字:控制器 编码 路由 | 更新日期: 2023-09-27 18:31:12

此路由映射不起作用:

configuration.Routes.MapHttpRoute(
    "EnvironmentTargetsView",
    "api/EnvironmentTargetsView/{id}/{userGuid}",
    new
    {
     id = RouteParameter.Optional,
     userGuid = RouteParameter.Optional,
    });

我收到错误:"找不到提供控制器名称以匹配请求 URI 的路由"

但是,此路由映射确实有效:

configuration.Routes.MapHttpRoute(
    "EnvironmentTargetsView", "api/{Controller}/{id}/{userGuid}",
    new
    {
     Controller = "EnvironmentTargetsView",
     id = RouteParameter.Optional,
     userGuid = RouteParameter.Optional,
    });

我很好奇为什么,并在这里冲浪寻找答案,但真的无法弄清楚。 我想对该值进行硬编码,因为这是我希望 API 采用的特定路由。我担心的是,通过在 routeTemplate 中标记它,我现在无法使用具有类似模式的路由。

路由到硬编码控制器

这是因为您指定了:

Controller = "EnvironmentTargetsView"

在第二个代码块中。如果将其添加到第一个代码块中,它将起作用,并且仍然具有硬编码值。

您也可以添加以下内容:

[Route("/api/EnvironmentTargetsView/{id}/{userGuid}]
public void Get(int id, guid userGuid) { }

到您的控制器方法。