我看到从 Web API 以两种不同的方式发送响应。
return ResponseMessage(new HttpResponseMessage(HttpStatusCode.UnsupportedMediaType));
或
return StatusCode(HttpStatusCode.UnsupportedMediaType);
双方最终都将 415 返回给调用者。我已经查看了这两个结果类的 MSDN 文档,但仍然无法弄清楚它们之间的区别或为什么我会选择一个而不是另一个。
最佳答案
使用 StatusCodeResult
实现简单的单元测试。
示例(在 xUnit 中):
var result = Assert.IsType<StatusCodeResult>(valuesController.Blah(data));
Assert.Equal(415, result.StatusCode);
回应评论: 我更喜欢下面这样的东西:
public IHttpActionResult Get(int id)
{
if(id == 10)
{
return StatusCode(HttpStatusCode.NotFound);
}
return Ok("Some value");
}
而不是:
public IHttpActionResult Get(int id)
{
if(id == 10)
{
return ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound));
}
return Ok("Some value");
}
关于c# - StatusCodeResult 或 ResponseMessageResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31191039/