我目前正在使用 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)
我不知道我还应该看什么。
我很确定当前 vs 中 api 控制器的默认路由不包含“api”。
通常 - 您来自前端的请求应该到达您的后端,但您的后端无法找到具有匹配的控制器:方法和 Http 属性
由于您没有包含控制器和路由配置的代码 - 您问题的真正答案很复杂。
要解决此问题:只需自己向您的 API 编写一个请求,然后检查哪个 URL/动词有效或无效。我预计控制器会出现错误。