有没有办法创建 Accept 属性来强制 ASP.NET Core 控制器操作中的 Accept 标头检查?

Eho*_*ret 3 .net c# asp.net-core asp.net-core-webapi

只是想知道是否有一种方法可以通过 ASP.NET Core 中的属性强制检查 HTTP 标头值是否属于一组给定值(例如application/jsonapplication/xml

我知道有ProducesAttributehttps://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.productsattribute?view=aspnetcore-2.1):

[Produces("application/json", "application/xml")]

但它更多的是关于支持的内容类型,而不是真正关于 Accept 标头分析。

我本来期望类似的东西,如果 Accept 标头的值不是,它会返回 406 HTTP 代码:

[Accept("application/json", "application/xml")]
Run Code Online (Sandbox Code Playgroud)

如果没有这样的现成属性,我该如何创建一个?

Cod*_*Hat 6

您可以使用[Consumes("application/json", "application/xml")]