Asp.net web api Web api路由仅使用RoutePrefix

Asp.net web api Web api路由仅使用RoutePrefix,asp.net-web-api,asp.net-mvc-routing,Asp.net Web Api,Asp.net Mvc Routing,我的webapi中有默认路由,如下所示 config.Routes.MapHttpRoute( "Web API Data type action", "api/v{Version}/{siteId}/{controller}" ); 现在,我想将路由添加到我的控制器,它将不同于 api/v{Version}/{controller} 所以我又加了一句 [RoutePrefix("api/v{V

我的webapi中有默认路由,如下所示

 config.Routes.MapHttpRoute(
                "Web API Data type action",
                "api/v{Version}/{siteId}/{controller}"
                );
现在,我想将路由添加到我的控制器,它将不同于

api/v{Version}/{controller}
所以我又加了一句

[RoutePrefix("api/v{Version}/{controller}")]

它可以工作,但我也可以通过默认路由访问我的控制器。这是限制路由的任何方法吗?如果控制器具有routeprefix,则仅使用此方法。我还想把我的控制器分为两个名称空间,然后我可以按名称空间限制路由

你试过使用区域吗?是的,区域可以是一个选项。但它不是任何MVC,它的webapi,一般来说,就我的理解,它有点不同,比如前端和后端。在我的例子中,它是相同的api,但我将有两个不同的路由级别。你有没有尝试过使用区域?是的,区域可以是一个选项。但它不是任何MVC,它的webapi,一般来说,就我的理解,它有点不同,比如前端和后端。在我的例子中,它是相同的api,但我将有两个不同级别的路由