我刚刚开始使用VS 2012 RC,并且我正在创建一个ASP.NET MVC 4 Web应用程序,其中我计划提供基于HTML的用户界面和基于WebApi的编程接口.
对于我的HTML网站,我有一个控制器和视图为我的每个模型(MVC!),并且路由工作“按照惯例”,所以例如,URL /客户端挂钩到我的ClientController.我的ClientController来自Controller.
对于我的API,我将创建从ApiController派生的新的控制器.我自然希望我的API网址与我的HTML网址相似,所以我希望客户端的信息可以在/ api / client上找到.然而,通过会话路由,这表明我需要一个名为ClientController的ApiController.而且我已经有一个ClientController类.
我该如何处理?我需要自定义路由吗?我将API类放在不同的命名空间中,以便我可以给它们相同的名称?
更新:这个问题似乎表明我的API控制器不同的命名空间是我需要的:Mix web api controllers and site controllers
解决方法
所有它需要的是控制器类在不同的命名空间,一切都很好.
使用MVC区域也可以正常工作(如gordonml的注释中所提到的),但这有效地将控制器放在不同的命名空间中,因此它是一种更正式的方法来实现相同的结果.