You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core应用API端点异常:前端报错及authors端点不存在

ASP.NET Core API端点无法访问的问题排查与解决

问题背景

ASP.NET Core应用存在无法定位的错误,每次访问前端都会触发该错误,localhost/api/authors无法正常访问,已编写AuthorController.cs定义/api/Author相关端点并配置Startup.cs,但问题未解决。

错误截图:
API访问错误截图

核心问题与修复步骤

1. 路由路径不匹配

你的AuthorController使用属性路由[Route("api/[controller]")],[controller]会自动替换为控制器名称去掉Controller后缀(即Author),所以正确的访问路径是localhost/api/Author,而你访问的是localhost/api/authors(复数),直接导致404错误。

修复:

  • 要么访问正确路径api/Author
  • 要么修改控制器的路由属性为[Route("api/authors")](复数形式)

2. 数据库上下文缺少Author实体集

AppDbContext中仅定义了DbSet<YourEntity>,但控制器中使用_context.Authors调用实体集,这会引发编译错误,导致运行时无法响应请求。

修复:
在AppDbContext类中添加Author实体的DbSet:

public DbSet<Author> Authors { get; set; }

同时补充定义Author实体类(代码中未提供,需自行添加),示例:

public class Author
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    // 根据业务需求添加其他属性
}

3. 命名空间引用缺失

AuthorController位于Pencraft.Controllers命名空间,而AppDbContext在Pencraft_app.pencraft_backend命名空间下,控制器未引用该命名空间,导致AppDbContext无法被识别,编译失败。

修复:
在AuthorController.cs顶部添加命名空间引用:

using Pencraft_app.pencraft_backend;

4. 中间件顺序错误与路由冲突

代码中app.UseCors("AllowOrigin")的注释标注需放在UseRouting()之前,但实际顺序颠倒,会导致CORS策略不生效,前端请求可能因跨域被拦截。此外,API控制器已使用属性路由,无需额外配置传统路由,否则会引发路由冲突。

修复:
调整中间件顺序为正确的执行流程:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseDefaultFiles();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseCors("AllowOrigin"); // 必须在UseRouting之后、UseEndpoints之前
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapRazorPages();
    });
}

同时删除Startup中多余的传统路由配置(MapControllerRoute相关代码),避免路由冲突。

5. 连接字符串配置验证

确保appsettings.json中已正确配置DefaultConnection连接字符串,示例:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=.;Database=YourDatabaseName;Trusted_Connection=True;TrustServerCertificate=True;"
  }
}

验证流程

  1. 修复所有编译错误(实体定义、命名空间、DbSet配置)
  2. 启动应用,访问正确的API路径localhost:<端口>/api/Author
  3. 若仍存在跨域问题,确认中间件顺序正确,CORS策略已生效

内容的提问来源于stack exchange,提问作者Phx_DPyrexx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:45:09