为什么Microsoft.AspNetCore.Http.StatusCodes不包含422个不可处理的实体?

时间:2017-01-24 19:51:31

标签: asp.net-core-mvc

Microsoft.AspNetCore.Http.StatusCodes包含许多用于从控制器返回的状态代码常量,例如可以在控制器中像这样使用:

return StatusCode(StatusCodes.Status201Created);

但奇怪的是StatusCodes类不包含422 Unprocessable Entity的值,至少在Asp.Net Core 1.0.1中没有。为什么不包含StatusCodes.Status422UnprocessableEntity

这个http状态代码是否已被某些我不知道的规范折旧了?或者是否还有其他原因导致422 Unprocessable Entity未被包含在内?

2 个答案:

答案 0 :(得分:2)

实际上它包含在Microsoft.AspNetCore.Http.StatusCodes

请在StatusCodes.cs

中找到最新列表


HTTP状态代码422是特定于WebDAV的(RFC 4918),稍后将其添加到Microsoft.AspNetCore.Http.StatusCodes

(查看Added HTTP Status codes #654拉取请求的详细信息)


但是几个月前,问题是你使用的是什么版本的ASP.NET Core?


更新

正如Ron C注意到的那样 - 这个状态代码包含在v1.1中(在v1.0.1中不可用)。

答案 1 :(得分:1)

我不知道为什么但是我快速搜索了一下post

截至2015年,@ Tom Christie提到了以下内容:

  

在行为上,400和422响应代码将被视为相同   客户和中介机构,所以它实际上并没有具体   你使用的差异。

而且:

  

422具体是WebDAV扩展,在RFC中未引用   2616或更新的HTTPbis specification

也许......只是可能......状态代码422不属于Microsoft.AspNetCore.Http.StatusCodes的原因可能是因为它是一个WebDAV扩展,但我不认真对待它我只是想提高对可能是什么原因的认识。