获取状态:404,statusText:"Not Found",url ... 在 asp.net 中使用核心 webApi?
getting status: 404, statusText: "Not Found", url ... in asp.net using core webApi?
在 ASP.NET Core Web API 中出现 404 错误。使用 ASP.NET 我在前端使用 Angular 7。当我单击表单的保存按钮时,表单数据到达 angular 中的 post 方法,但在单击保存后显示 404 错误。对于这种形式,我创建了第一个模型,在其中为数据库定义了它的 属性,然后我为该模型创建了控制器并使用了我在模型中声明的 属性。
Angular 服务 ts 文件:
export class MurderService {
BaseUrl :string ='';
constructor( private http:HttpClient, private config:ConfigService) {
this.BaseUrl=config.getApiURI();
}
murderQuestionnaire(data: any){
var murderBody={
Dead: data.Dead,
Wounded: data.Wounded,
CriminalsInvolved: data.CriminalsInvolved,
CriminalAppearance: data.CriminalAppearance,
VehiclesUsed: data.VehiclesUsed,
WeaponsDescription :data.WeaponsDescription
};
return this.http.post(this.BaseUrl +'/Complians' , murderBody);//upto here data reaches
successfully
}
}
API 此服务的控制器:
[Route("api/[controller]")]
[ApiController]
public class ComplainMurderController : ControllerBase
{
[HttpPost]
[Route("Complians")]
//api:/Complians
public void PostComplainMurder(Complians complian)
{
var complianMurder = new Complians()
{
Dead = complian.Dead,
Wounded = complian.Wounded,
CriminalsInvolved = complian.CriminalsInvolved,
CriminalAppearence = complian.CriminalAppearence,
VehiclesUsed = complian.VehiclesUsed,
WeaponsDescription = complian.WeaponsDescription
};
try
{
// var result = await complian.Add(complianMurder);
AuthenticationContext authenticationContext = new AuthenticationContext();
authenticationContext.Add(complianMurder);
authenticationContext.SaveChanges();
}
catch(Exception ex)
{
throw ex;
}
}
}
}
错误
POST http://localhost:49601/api/Complians 404 (Not Found)
您的控制器路由定义为 api/[controller]
(在您的情况下,这导致 api/ComplainMurder
)。您的操作定义为 Complians
。这些组合起来就是你的实际路线:api/ComplainMurder/Complians
,不匹配 api/Complians
.
用这个改变你的 Angular 7 面将修复它:
return this.http.post(this.BaseUrl +'/ComplainMurder/Complians' , murderBody);
旁注:注意 incorrect/inconsistent 拼写(合规而不是抱怨),因为它势必会导致混淆 and/or 错误。
在 ASP.NET Core Web API 中出现 404 错误。使用 ASP.NET 我在前端使用 Angular 7。当我单击表单的保存按钮时,表单数据到达 angular 中的 post 方法,但在单击保存后显示 404 错误。对于这种形式,我创建了第一个模型,在其中为数据库定义了它的 属性,然后我为该模型创建了控制器并使用了我在模型中声明的 属性。
Angular 服务 ts 文件:
export class MurderService {
BaseUrl :string ='';
constructor( private http:HttpClient, private config:ConfigService) {
this.BaseUrl=config.getApiURI();
}
murderQuestionnaire(data: any){
var murderBody={
Dead: data.Dead,
Wounded: data.Wounded,
CriminalsInvolved: data.CriminalsInvolved,
CriminalAppearance: data.CriminalAppearance,
VehiclesUsed: data.VehiclesUsed,
WeaponsDescription :data.WeaponsDescription
};
return this.http.post(this.BaseUrl +'/Complians' , murderBody);//upto here data reaches
successfully
}
}
API 此服务的控制器:
[Route("api/[controller]")]
[ApiController]
public class ComplainMurderController : ControllerBase
{
[HttpPost]
[Route("Complians")]
//api:/Complians
public void PostComplainMurder(Complians complian)
{
var complianMurder = new Complians()
{
Dead = complian.Dead,
Wounded = complian.Wounded,
CriminalsInvolved = complian.CriminalsInvolved,
CriminalAppearence = complian.CriminalAppearence,
VehiclesUsed = complian.VehiclesUsed,
WeaponsDescription = complian.WeaponsDescription
};
try
{
// var result = await complian.Add(complianMurder);
AuthenticationContext authenticationContext = new AuthenticationContext();
authenticationContext.Add(complianMurder);
authenticationContext.SaveChanges();
}
catch(Exception ex)
{
throw ex;
}
}
}
}
错误
POST http://localhost:49601/api/Complians 404 (Not Found)
您的控制器路由定义为 api/[controller]
(在您的情况下,这导致 api/ComplainMurder
)。您的操作定义为 Complians
。这些组合起来就是你的实际路线:api/ComplainMurder/Complians
,不匹配 api/Complians
.
用这个改变你的 Angular 7 面将修复它:
return this.http.post(this.BaseUrl +'/ComplainMurder/Complians' , murderBody);
旁注:注意 incorrect/inconsistent 拼写(合规而不是抱怨),因为它势必会导致混淆 and/or 错误。