フルスタックアプリケーションをビルドしていますが、ボタンクリックで個々のオブジェクト(データベースの質問)を削除できるようになりました。バックエンドの私のAPIは、私がpostman経由でテストするときにこの目的のために働きます:200 OKを返し、レコードが有効に削除されたことを確認します。しかし、これは私のフロントエンドを通して同じ行動を試みるときには機能しません。ASP.NETコア:角度4のPOSTリクエストでレコードを削除すると404が見つかりません
バックエンドAPI:
[Route("api/removeQuestion")]
[HttpPost]
public IActionResult RemoveQuestion(int questionId)
{
Question question = _context.Questions.SingleOrDefault(q => q.QuestionId == questionId);
if (question == null)
{
return NotFound();
}
else
{
_context.Questions.Remove(question);
_context.SaveChanges();
return Ok();
}
}
フロントエンドAPI:
removeQuestion(questionId:number) {
var url = "http://localhost:57222/api/removeQuestion";
console.log("id is: " + questionId);
return this.http.post(url, questionId).map(
res => <Question>res.json()[0],
err => console.log(err)
);
}私はAPI呼び出し
:
removeQuestion(id:number){
this.api.removeQuestion(id).subscribe(
res => {
this.question = res;
},
error => this.errorMessage = <any>error
);
を}
あなたは私が本当に必要としていない間に応答をマッピングしていることに気付くでしょう。
私が問題を理解している限り、SingleOrDefaultでid値に基づいて適切なオブジェクトを見つけ出すことができず、したがってデフォルト値null(?)に戻っていません。しかし、APIが呼び出される直前にIDが正しくコンソールに記録され、郵便配達員との手動投稿を送信すると機能します。
はところで – DrNio
私もそう思ったが、私は、Microsoftのヘルプページについての研究をしたとき、彼らはあまりにもPOSTと削除を行います。 https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/crud – Gravi
ok、クールな感謝! – DrNio