Microsoft.AspNetCore.Http.StatusCodes
包含许多用于从控制器返回的状态代码常量,例如可以在控制器中像这样使用:
return StatusCode(StatusCodes.Status201Created);
但奇怪的是StatusCodes
类不包含422 Unprocessable Entity的值,至少在Asp.Net Core 1.0.1中没有。为什么不包含StatusCodes.Status422UnprocessableEntity
?
这个http状态代码是否已被某些我不知道的规范折旧了?或者是否还有其他原因导致422 Unprocessable Entity未被包含在内?
答案 0 :(得分:2)
实际上它包含在Microsoft.AspNetCore.Http.StatusCodes
。
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扩展,但我不认真对待它我只是想提高对可能是什么原因的认识。