目前我还在学习c#web API,我遇到了一些问题。
所以下面的代码片段显示了我将在数据库中创建新学生的部分代码,我要做的是创建对象,如果成功,它将返回HTTP-CREATED http响应代码并返回学生对象。
如果失败,它应该返回HTTP-BADREQUEST响应代码,并且还返回学生对象。
然而,为了返回响应代码,由于设置了返回类型,我无法返回学生对象,反之亦然。因此,这就是困境。
// POST api/student
public HttpResponseMessage PostStudent(Models.Student student)
{
if (DBManager.createStudent(student) != null)
return new HttpResponseMessage(HttpStatusCode.Created);
// HOW TO RETURN STUDENT OBJECT?
else
return new HttpResponseMessage(HttpStatusCode.BadRequest);
// HOW TO RETURN STUDENT OBJECT?
}
答案 0 :(得分:1)
HttpRequestMessageExtensions.CreateResponse<T> Method
有一个名为value
的可选形式参数,可用于创建包含状态代码和对象的HttpResponseMessage
。
return Request.CreateResponse(HttpStatusCode.Created, student);
答案 1 :(得分:-3)
我将告诉您我为公司构建Web服务器的经验:不要使用WebApi。有很多限制,简而言之,支持非常狭窄的使用场景。坚持传统的MVC控制器,生活更轻松:
public ActionResult PostStudent(Models.Student s){
//do something
Response.StatusCode = 400;
return Json(s);
}