尝试 运行 Api 来自 ASP.NET 核心 5 网络应用程序的控制器功能时未找到 404

404 not found when trying to run Api Controller function from ASP.NET core 5 web app

我正在尝试在我的 ASP.NET 核心 5 Razor Pages Web 应用程序中创建一个 API 控制器。

我在 Visual studio 中名为 Api 的文件夹中创建了 Api 控制器。

然后,当我尝试 运行 以下 url 来测试 api 控制器是否正常工作时,我收到 404 not found:

https://localhost:345345/api/saveimage

我错过了什么?

Api 控制器 (SaveImageController.cs):

[Route("api/[controller]")]
[ApiController]
public class saveImageController : ControllerBase
{
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "test", "test2" };
    }
}

即使为您的控制器使用文件夹“Api”也可以,但将控制器保存在名为“Controllers”的文件夹中是正常的。

请注意,Razor 页面使用基于文件夹的路由,这不适用于控制器。

在 Startup#ConfigureServices 中,确保你有这个:

services.AddControllers();

在 Startup#Configure 中,确保你有这个:

app.UseEndpoints(endpoints =>
{
    endpoints.MapRazorPages();
    endpoints.MapControllers();
}