C# PUT或POST请求的IHttpActionResult应使用哪个ResponseType?

C# PUT或POST请求的IHttpActionResult应使用哪个ResponseType?,c#,asp.net-web-api,C#,Asp.net Web Api,我已经开始用[ResponseType]属性来装饰我的IHttpActionResult方法,目的是让消费者更容易知道如何处理响应 这对于GET来说是有意义的,因为我可能想对返回的数据做些什么。 但是,[ResponseType]对于PUT或POST请求有意义吗?它们不返回任何数据,只返回成功代码 e、 g [HttpPut] [路由(“Contact/{contactId:int}/name”,name=“UpdateContactName”)] [ResponseType(typeof(??

我已经开始用
[ResponseType]
属性来装饰我的
IHttpActionResult
方法,目的是让消费者更容易知道如何处理响应

这对于GET来说是有意义的,因为我可能想对返回的数据做些什么。
但是,
[ResponseType]
对于PUT或POST请求有意义吗?它们不返回任何数据,只返回成功代码

e、 g

[HttpPut]
[路由(“Contact/{contactId:int}/name”,name=“UpdateContactName”)]

[ResponseType(typeof(??))]/事实证明,
[ResponseType]
在不返回数据的控制器方法上是有意义的

您可以使用
void
类型来确保WebApi帮助文件不会显示这些方法的“示例不可用”消息

i、 e


我可能遗漏了一些东西,但我个人觉得下面的方法更优雅,信息更丰富

[HttpPut]
public IHttpActionResult Approve(long id)
{
    if (!ModelState.IsValid)
    {   
        return BadRequest();
    }
    // .....
    // .....



    bool success = false;// this is just a flag to indicate operation progress   

    // Do Update... 

    return Ok(sucess);
}

与不返回任何数据的控制器不同,我会根据操作的成功或失败返回“类似”的Ok(true)。

但是如果方法失败,为什么会返回Ok?现在客户端还需要检查HTTP状态代码和内容。抱歉,但我认为这没有意义。如果你仔细阅读我的回复,我会说“我会返回”类似“Ok(true)”的内容这表示根据操作的成功或失败,您可以使用其他响应类型。不过,我编辑了代码以涵盖这一点。整个要点是,客户端需要被通知其请求的操作。
[ResponseType(typeof(void))]
[HttpPut]
public IHttpActionResult Approve(long id)
{
    if (!ModelState.IsValid)
    {   
        return BadRequest();
    }
    // .....
    // .....



    bool success = false;// this is just a flag to indicate operation progress   

    // Do Update... 

    return Ok(sucess);
}