此路线映射不起作用:
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中我现在不能使用类似模式的路由。
答案 0 :(得分:2)
因为你指定了:
Controller = "EnvironmentTargetsView"
在第二个代码块中。如果将其添加到第一个代码块,它将工作并仍然具有硬编码值。
您还可以添加以下内容:
[Route("/api/EnvironmentTargetsView/{id}/{userGuid}]
public void Get(int id, guid userGuid) { }
给你的控制器方法。