PostStudent 메소드가있는 webApi 설정이 있습니다. API 호출이 제대로 작동하고 DB에 새 학생을 만들지 만 응답 본문의 값을 반환 할 수는 없습니다. Ok (newStudent) 및 Created ("~/api/poststudent", newStudent)를 반환하려고했지만 어느 누구도 내가 필요한 newStudent 값을 반환하지 않았습니다.postasync 호출의 응답을 어떻게 사용합니까?
나는 모든 응답을 마치고 실제 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);
}
여기서 내가 포스트 동기화를 호출하고 응답 본문을 저장하려고합니다.
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);
누군가가 나를 도울 수 있기를 바랍니다. 다른 페이지로 리디렉션하는 것이 너무 어려울 것이라고 생각하지 않았습니다.
건배.
web api 컨트롤러 및 웹 API 클라이언트 코드 (파일 및 메소드 이름 제외)를 제외한 나머지 3 개의 미리보기에 컨텍스트를 추가하십시오. 명확한 코드 구조는 독자가 코드를 이해하는 데 도움이됩니다. 제어 흐름이 세 번째 발췌 문장에 어떻게 도달하는지 이해할 수 없습니다. 공식 자습서로 연결되는 답변을 시작합니다. –
제 3 발췌 문장에서 당신이 기대하는 것은 특히 나에게 불분명하다. 일반적으로 ASP.NET MVC 애플리케이션의 코드 리디렉션은 RedirectToAction()을 사용하여 수행됩니다. –