控制器

时间:2015-07-07 09:07:46

标签: c# asp.net-web-api asp.net-web-api2 routeattribute

我在这里有一些代码,我不理解控制器上的所有“空”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端点而不更改现有代码?

1 个答案:

答案 0 :(得分:0)

路由属性是绝对的 - 它不会取控制器名称,除非您在路由中指定它(或在控制器级别设置路由前缀)。

尝试将路线更改为

修改

或尝试将网址更改为...

[Route("TestAccess/FindProducts/{country}/{brandlist}/product/{databaseID:int}")]

或可能     http://localhost/TestService/de/2/product/5