在控制器上找不到带空RoutePrefix的路由



我这里有人的代码,我不理解它首先是控制器上的"空" 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属性是绝对的——除非你在路由中指定它(或者在控制器级别设置路由前缀),否则它不会使用控制器名。

尝试将路由更改为

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

编辑

或者尝试将url更改为…

http://localhost/de/2/product/5

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

相关内容

  • 没有找到相关文章

最新更新