ASP Core:如何路由到Area文件夹中的API Controller?

Rom*_*kij 5 asp.net-core asp.net-core-webapi razor-pages asp.net-core-2.2

结构:

+ MyProj
   + Areas
       + Configuration
          - Pages
          - ConfigurationApiController.cs
Run Code Online (Sandbox Code Playgroud)

VS2017建议创建不带Controllers文件夹的控制器,这对我来说是可以的,因为我使用Razor Pages并且不需要Controllers文件夹:

在此处输入图片说明

那些不起作用:

控制器定义:

+ MyProj
   + Areas
       + Configuration
          - Pages
          - ConfigurationApiController.cs
Run Code Online (Sandbox Code Playgroud)

Mvc路由配置的标准方式:

[Route("api")]
[Produces("application/json")]
[ApiController]
public class ConfigurationApiController : ControllerBase
{
    private readonly ApplicationSettings applicationSettings;
    [HttpGet]
    public ActionResult GetUsers()
    {
Run Code Online (Sandbox Code Playgroud)

如何GetUsers采取行动ConfigurationApiController

Lak*_*ono 5

修改api路由并添加Area Attribute以提供[area]路由的区域名称。

    [Area("Configuration")]
    [Route("[area]/api/[controller]")]
    [ApiController]
    public class ConfigurationApiController : ControllerBase
    {
    }
Run Code Online (Sandbox Code Playgroud)

仅此而已,可以通过http:// localhost:8080 / Configuration / api / ConfigurationApi访问