我想从使用API​​控制器和AngularJS的MVC4应用程序开始。但是我不确定如何构建我的应用程序。

假设我从一个称为controller的普通UserController开始。该控制器具有Index操作,并返回(剃刀)视图。

在这种情况下,我将做一些HTML和AngularJS的事情。角度代码将反过来调用API控制器以获取其JSON数据。

但这是令我困惑的部分。我已经有一个UserController返回视图。但是然后我还需要另一个UserController(扩展了ApiController)以返回JSON数据,对吗?

因此,我需要一个用于GET用户数据和PUT用户数据等的API控制器。因此,该逻辑名称也应为UserController

但是显然我不能有两个同名的控制器。那么这是如何工作的呢?我应该如何命名/结构化我的MVC应用程序?

最佳答案

将控制器放在项目的Controllers文件夹中,将ApiControllers放在项目的ApiControllers文件夹中。我就是做这个的。

MyProject
 |
 ---ApiControllers
 |   |
 |   ---UserController.cs
 |
 ---Controllers
     |
     ---UserController.cs


如果这样做,默认情况下名称空间将有所不同,从而允许您共享类名称。

对于路由,一个将是api/user,另一个将是user

10-05 23:14