我在这里有一些代码,我不理解控制器上的所有“空”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}" );
我必须在浏览器网址栏中输入什么路线来触发我的FindProducts端点而不更改现有代码?
答案 0 :(得分:0)
路由属性是绝对的 - 它不会取控制器名称,除非您在路由中指定它(或在控制器级别设置路由前缀)。
尝试将路线更改为
修改
或尝试将网址更改为...
[Route("TestAccess/FindProducts/{country}/{brandlist}/product/{databaseID:int}")]