Asp.net mvc ASP.NET Core 2中的默认输入格式化程序

Asp.net mvc ASP.NET Core 2中的默认输入格式化程序,asp.net-mvc,asp.net-core-mvc,Asp.net Mvc,Asp.net Core Mvc,在ASP.NET Core 2应用程序中,我有一个带有[FromBody]属性的操作。ASP.NET引擎将参数从JSON主体转换为模型对象 但只有当请求的内容类型设置为application/json时,它才起作用。如果未设置标头,则返回415(不支持的媒体类型)HTTP错误 如何将[FromBody]绑定的默认格式化程序设置为JSON,这样即使未设置内容类型请求头,它也会绑定模型?如果未指定内容类型,则默认内容类型为“text/plain”。您可以使用以下代码强制应用程序将负载视为json内容

在ASP.NET Core 2应用程序中,我有一个带有
[FromBody]
属性的操作。ASP.NET引擎将参数从JSON主体转换为模型对象

但只有当请求的
内容类型
设置为
application/json
时,它才起作用。如果未设置标头,则返回415(不支持的媒体类型)HTTP错误


如何将
[FromBody]
绑定的默认格式化程序设置为JSON,这样即使未设置
内容类型
请求头,它也会绑定模型?

如果未指定内容类型,则默认内容类型为“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"));
                }
            }
            );
        }