0

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);

誰かが私を助けてくれることを願っています。別のページへのリダイレクトがこれほど難しいとは思いもしませんでした。

乾杯。

4

2 に答える 2

1

あなたは電話を待っていませんasync

var response = await client.PostAsync("api/poststudent", content);
return (await response.Result.Content.ReadAsStringAsync()).ToString();
于 2017-09-25T10:55:52.110 に答える