我的应用程序中有两种类型的控制器。 1个WebApi控制器和1个MVC控制器。使用我的项目的以下结构:
Project
|-- Controllers
| |-- Api
| | |-- AccountController
| | |-- ...
| |-- AccountController
| |-- ...
如您所见,我在两个不同的命名空间中都有两次AccountController。 Api文件夹中的一个是WebApi控制器,而Controllers下的一个是MVC控制器。
我想在视图中使用@Url.Action("GetAll", "Account")
来生成指向WebApi控制器的链接。如何区分Api控制器和MVC控制器。我该如何判断是使用Api还是MVC控制器?
答案 0 :(得分:1)
总之:您不能。 Url.Action
无法按名称空间区分;您将需要唯一的控制器名称。这是为什么通常在API控制器的名称(即Api
和AccountController
)中添加AccountApiController
的部分原因。
如果您确实想同时使用AccountController
,则唯一的选择是使用区域。您可以创建一个Api
区域,而不只是Controllers
下的一个子文件夹,然后可以执行以下操作:
@Url.Action("GetAll", "Account", new { area = "Api" })