路由到硬编码控制器
本文关键字:控制器 编码 路由 | 更新日期: 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) { }
到您的控制器方法。