我刚刚开始使用 VS 2012 RC,我正在创建一个 ASP.NET MVC 4 Web 应用程序,我计划在其中提供基于 HTML 的用户界面和基于 WebApi 的编程界面。
对于我的 HTML 网站,我的每个模型(MVC!)都有一个 Controller 和 View ,并且路由“按约定”工作,例如,URL /client
连接到我的 ClientController
.我的 ClientController
源自 Controller
.
对于我的 API,我将创建派生自 ApiController
的新 Controller 。 .我自然希望我的 API URL 与我的 HTML URL 相似,因此我希望在 /api/client
上提供客户端信息。 .但是,根据约定路由,这表明我需要一个名为 ClientController
的 ApiController .而且我已经有了 ClientController
类(class)。
我该如何处理?我需要自定义路由吗?我是否将 API 类放在不同的命名空间中,以便可以给它们相同的名称?
更新:这个问题似乎表明我只需要为我的 API Controller 使用不同的命名空间:Mix web api controllers and site controllers
最佳答案
它所需要的只是 Controller 类位于不同的命名空间中,一切都很好。
使用 MVC 区域也可以(正如 gordonml 的评论中所建议的那样),但这有效地将 Controller 放在不同的命名空间中,因此这是实现相同结果的更正式的方式。
关于asp.net - 对于同一件事,我可以同时拥有 Controller 和 ApiController 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564922/