Asp.net web api 区域内的ApiController

Asp.net web api 区域内的ApiController,asp.net-web-api,asp.net-mvc-areas,Asp.net Web Api,Asp.net Mvc Areas,我想要BlaController:ApiController,BlaController位于/Areas/XXX/(或命名空间MySolution.Areas.XXX.Controllers) 问题是当我浏览到http://localhost:1935/XXX/Bla/SomeAction我得到404。 普通控制器(:控制器)不会抛出404。 注意:SomeAction可能是BlaController中的“publicstringsomeAction(){return“hi”;}” *注2:已

我想要
BlaController:ApiController
,BlaController位于/Areas/XXX/(或命名空间
MySolution.Areas.XXX.Controllers

问题是当我浏览到
http://localhost:1935/XXX/Bla/SomeAction
我得到404。
普通控制器(
:控制器
)不会抛出404。


注意:SomeAction可能是BlaController中的“publicstringsomeAction(){return“hi”;}” *注2:已尝试*
http://localhost:1935/api/Bla/SomeAction
并且也不起作用

基于此,看起来您需要构建自己的
HttpControllerFactory
,以支持WebAPI领域

问题引用了一篇关于如何做到这一点的文章:

希望这有帮助

更新:
感谢Bertrand,他指出了一篇关于WebApi对区域支持的更新文章(默认情况下仍然没有)。更新的链接是

您是如何注册路由的?呃,我没有,因为普通控制器是自动注册的。WebApi中不再有
HttpControllerFactory
。可以使用自定义的
HttpControllerSelector
完成此操作。Andrew Malkov为你链接的那篇文章写了一个新版本。