如何使用 ServiceStack 成功删除时返回 HTTP 204 响应

ric*_*ver 3 c# servicestack

我在使用 ServiceStack 返回没有正文的 HTTP 204 时遇到问题

如果我回来:

return new HttpResult() {
    StatusCode = HttpStatusCode.NoContent 
};
Run Code Online (Sandbox Code Playgroud)

第一次它工作正常,但重复调用将导致 Fiddler 抛出错误,指出上次响应未正确形成。我相信这是因为内容类型未明确设置为application/json,并且响应返回空字符串或单个空格字符。

ContentType = "json"由于某种原因对对象进行的设置HttpResult会返回 HTTP 405 响应。(这是一个侧面的好奇心 - 不是我主要关心的)

如果我返回 void,则响应是 HTTP 200,我当前正在使用它,但我想我可以提供首选的 204 响应。

谢谢你的时间。

was*_*atz 5

我通常会按照这些思路做一些事情

public void Delete(FooRequest request) {
    // Perform deletion

    base.Response.StatusCode = (int)HttpStatusCode.NoContent;
}
Run Code Online (Sandbox Code Playgroud)

我喜欢这种方法而不是全局响应过滤器,因为这使我可以将与此请求相关的所有逻辑放在同一个位置,而不必记住我拥有哪些响应过滤器。