Angular17 中的 API 测试/数据库连接

问题描述 投票:0回答:1

我目前正在使用 Asp.Net Core(后)和 Angular17(前)创建一个 Web 应用程序。 我使用 DbContext 为项目中的表创建了类模型,这里是用于 DbContext 的代码(出于显而易见的原因,我更改了私有信息):

using Microsoft.EntityFrameworkCore;

namespace App.Models.MyEntity
{
    public partial class MyEntity: DbContext
    {
        public MyEntity(DbContextOptions<MyEntity> options)
            : base(options)
        {
        }

        public virtual DbSet<Employee> Employee { get; set; }
    }
}

在我的 Startup.cs 中,我添加了与该数据库的连接:

public void ConfigureServices(IServiceCollection services)
{
   services.AddDbContext<MyEntity>(options =>
      options.UseSqlServer(Configuration.GetConnectionString("MyEntity")));
}

最后在我的“appsettings.json”中添加了 ConnectionString:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
  "MyEntity": "Server=MyServer;Database=DB1;User Id=UserId;Password=password1;MultipleActiveResultSets=True;" 

  }
}

设置完所有这些内容后,我尝试使用以下方法在 Angular 代码中测试我的 API:

export class PDSLoginComponent {
  private apiUrl = 'https://localhost:44612/';

  loginData = {
    UserId: ''
  };
  getEmployeeData(input: string) {
    this.http.get<any>(`${this.apiUrl}api/Employees/GetEmpNameByClock?clockNo=${clockNo}`).subscribe(
        data => {
          console.log(data);
        }, error => {
          console.log("What's the error? ",error);
          this.toastr.error(error, "Error");
        }
      );
  onLogin() {
    this.getEmployeeDataByClock(this.loginData.UserId);
  }
}

为什么我会收到下一个错误:

polyfills.js:23  GET https://localhost:44359/api/Employees/GetEmpNameByClock?clockNo=7284 404 (Not Found)

  1. 我尝试查找语法错误,但字符串似乎是正确的,
  2. 我检查了连接字符串是否具有正确的凭据。
  3. 我的后端和前端同时运行。
  4. 我正在导入所有必需的库,并且依赖项都是最新的。

我不知道我还应该看什么。

asp.net-core http dependencies connection-string angular17
1个回答
0
投票

我很确定当前 vs 中 api 控制器的默认路由不包含“api”。

通常 - 您来自前端的请求应该到达您的后端,但您的后端无法找到具有匹配的控制器:方法和 Http 属性

由于您没有包含控制器和路由配置的代码 - 您问题的真正答案很复杂。

要解决此问题:只需自己向您的 API 编写一个请求,然后检查哪个 URL/动词有效或无效。我预计控制器会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.