在ASP.NET Core 2应用程序中,我有一个[FromBody]
属性的操作。该参数由ASP.NET引擎从JSON主体转换为模型对象。
但只有在Content-Type
请求设置为application/json
时才有效。如果未设置标头,则返回 415(不支持的媒体类型) HTTP错误。
如何将[FromBody]
绑定的默认格式化程序设置为JSON,因此即使未设置Content-Type
请求标头,它也会绑定模型?
答案 0 :(得分:3)
如果您没有指定内容类型,则它假定的默认内容类型是“text / plain”。您可以使用以下代码强制应用程序将有效负载视为json内容,
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(config =>
{
foreach (var formatter in config.InputFormatters)
{
if (formatter.GetType() == typeof(JsonInputFormatter))
((JsonInputFormatter)formatter).SupportedMediaTypes.Add(
Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Parse("text/plain"));
}
}
);
}