在控制器上找不到 RoutePrefix 为空的路由
Route is not found with empty RoutePrefix on controller
我这里有一些代码,但我不明白控制器上的 "empty" RoutePrefix。
我在浏览器中这样调用url:
http://localhost/TestService/TestAccess/FindProducts/de/2/product/5
我收到此控制器 + 操作的 404:
[RoutePrefix("")]
public class TestAccessController : ApiController
{
[Route("{country}/{brandlist}/product/{databaseID:int}")]
[HttpGet]
public async Task<IHttpActionResult> FindProducts(String country, String brandlist, int databaseID)
{
...
}
}
即路由设置:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(name: "Default", routeTemplate: "{controller}" );
我必须在浏览器 url 栏中输入什么路径才能在不更改现有代码的情况下触发我的 FindProducts 端点?
路由属性是绝对的 - 它不采用控制器名称,除非您在路由中指定它(或在控制器级别设置路由前缀)。
尝试将路线更改为
[Route("TestAccess/FindProducts/{country}/{brandlist}/product/{databaseID:int}")]
编辑
或者尝试将 url 更改为...
http://localhost/de/2/product/5
我这里有一些代码,但我不明白控制器上的 "empty" RoutePrefix。
我在浏览器中这样调用url:
http://localhost/TestService/TestAccess/FindProducts/de/2/product/5
我收到此控制器 + 操作的 404:
[RoutePrefix("")]
public class TestAccessController : ApiController
{
[Route("{country}/{brandlist}/product/{databaseID:int}")]
[HttpGet]
public async Task<IHttpActionResult> FindProducts(String country, String brandlist, int databaseID)
{
...
}
}
即路由设置:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(name: "Default", routeTemplate: "{controller}" );
我必须在浏览器 url 栏中输入什么路径才能在不更改现有代码的情况下触发我的 FindProducts 端点?
路由属性是绝对的 - 它不采用控制器名称,除非您在路由中指定它(或在控制器级别设置路由前缀)。
尝试将路线更改为
[Route("TestAccess/FindProducts/{country}/{brandlist}/product/{databaseID:int}")]
编辑
或者尝试将 url 更改为...
http://localhost/de/2/product/5