Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RESTful API返回约定_C#_Asp.net Web Api - Fatal编程技术网

C# RESTful API返回约定

C# RESTful API返回约定,c#,asp.net-web-api,C#,Asp.net Web Api,目前我还在学习c#WebAPI,我遇到了一些问题 下面的代码片段显示了我的一部分代码,这些代码将在数据库中创建一个新的student,我正在尝试创建对象,如果成功,它将返回一个HTTP创建的HTTP响应代码并返回student对象 如果失败,它应该返回HTTP-BADDRequest响应代码,并返回STUDENT对象 但是,为了返回响应代码,由于返回类型设置的原因,我无法返回student对象,反之亦然,因此出现了进退两难的局面 // POST api/student publi

目前我还在学习c#WebAPI,我遇到了一些问题

下面的代码片段显示了我的一部分代码,这些代码将在数据库中创建一个新的student,我正在尝试创建对象,如果成功,它将返回一个HTTP创建的HTTP响应代码并返回student对象

如果失败,它应该返回HTTP-BADDRequest响应代码,并返回STUDENT对象

但是,为了返回响应代码,由于返回类型设置的原因,我无法返回student对象,反之亦然,因此出现了进退两难的局面

// 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?
        }

我将告诉您我自己为公司构建web服务器的经验:不要使用WebApi。有很多限制,简而言之,支持非常狭窄的使用场景。只要坚持使用传统的MVC控制器,生活就会轻松得多:

public ActionResult PostStudent(Models.Student s){
    //do something
    Response.StatusCode = 400;
    return Json(s);
}
具有一个名为
value
的可选形式参数,可用于创建同时包含状态代码和对象的
HttpResponseMessage

return Request.CreateResponse(HttpStatusCode.Created, student);

如果操作失败,返回学生对象有什么意义?我也在学习WebAPI。这只是一个例子。在某些情况下,您可能需要这样做。