[英]How do I use the response from a postasync call?
我有一个具有PostStudent方法的webApi设置。 API调用工作正常,并在数据库中创建了一个新学生,但是我无法获得它来返回响应正文中的值。 我尝试返回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);
我希望有一个人可以帮助我。 我从没想过重定向到另一个页面会这么难!
干杯。
您不等待 async
调用:
var response = await client.PostAsync("api/poststudent", content);
return (await response.Result.Content.ReadAsStringAsync()).ToString();
有2个官方教程可用于快速启动ASP.NET WebApi项目。
我想建议您完成这些工作。 如果发现应用程序做错了事,请针对这些示例修复应用程序。 如果您的要求与示例中给出的要求不同,则可以在问题中强调这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.