PostStudent メソッドを持つ webApi をセットアップしました。API 呼び出しは正常に機能し、DB に新しい学生を作成しますが、応答本文で値を返すことができません。Ok(newStudent) と Created("~/api/poststudent", newStudent) を返そうとしましたが、どちらも必要な newStudent 値を返しませんでした。
すべての応答を確認しましたが、実際の newStudent オブジェクトが見つかりません。それはありますか、それとも見逃しているだけですか、それとも私のコードに問題がありますか?
これは API の PostStudent メソッドです。
var newStudent = new Student
{
studentId = nextStudentId,
studentFirstName = studentEntry.StudentFirstName,
studentLastName = studentEntry.StudentLastName,
studentDOB = studentEntry.StudentDob,
studentEmergencyContactName = studentEntry.StudentEmergencyContactName,
studentEmergencyContactNum = studentEntry.StudentEmergencyContactNum,
ticketNumber = studentEntry.TicketNumber
};
db.Student.Add(newStudent);
try
{
db.SaveChanges();
}
catch (DbUpdateException)
{
if (StudentExists(newStudent.studentId))
return BadRequest("That student id already exists");
throw;
}
return Ok(newStudent.studentId);
// return Created("~/api/poststudent", newStudent);
}
ここで postasync を呼び出し、応答本文を保存しようとします。
var response = client.PostAsync("api/poststudent", content);
return response.Result.Content.ReadAsStringAsync().ToString();
そして、これが値を使用したい場所です。
var newStudentId = controller.PostStudent(studentFirstName, studentLastName, studentDob, ticketNumber);
var url = "~/AddGuardian/AddGuardian/" + newStudentId;
Response.Redirect(url);
誰かが私を助けてくれることを願っています。別のページへのリダイレクトがこれほど難しいとは思いもしませんでした。
乾杯。