首页 > 解决方案 > 尝试从 ASP.NET Core 5 Web 应用程序运行 Api 控制器功能时找不到 404

问题描述

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

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

然后,当我尝试运行以下 url 来测试 api 控制器是否工作时,我得到一个 404 未找到:

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" };
    }
}

标签: c#controllerrazor-pagesasp.net-apicontrollerasp.net-core-5.0

解决方案


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

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

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

services.AddControllers();

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

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

推荐阅读