我能同时拥有一个Controller和一个ApiController吗?

Gar*_*ill 16 .net asp.net asp.net-mvc wcf-web-api

我刚刚开始使用VS 2012 RC,我正在创建一个ASP.NET MVC 4 Web应用程序,我计划在其中提供基于HTML的用户界面和基于WebApi的编程接口.

对于我的HTML网站,我有一个控制器和每个模型的视图(MVC!),并且路由"按惯例"工作,例如,URL /client连接到我的ClientController.我的ClientController来源于Controller.

对于我的API,我将创建源自的新控制器ApiController.我自然希望我的API网址与我的HTML网址类似,因此我希望客户端信息可用于/api/client.但是,使用按惯例路由,这表明我需要一个命名的ApiController ClientController.我已经ClientController上课了.

我该如何处理?我需要自定义路由吗?我是否将API类放在不同的命名空间中,以便我可以为它们指定相同的名称?

更新:这个问题似乎表明我的API控制器的不同命名空间就是我所需要的:混合web api控制器和站点控制器

Gar*_*ill 12

所需要的只是控制器类在不同的命名空间中,一切都很好.

使用MVC区域也可以工作(如gordonml的注释中所述),但这有效地将控制器放在不同的命名空间中,因此它是实现相同结果的更正式的方式.