Контроллер веб-API выдает сообщение «Нет MediaTypeFormatter для чтения объекта типа’JObject’ из содержимого с типом носителя’application / json'».

#asp.net-web-api #asp.net-web-api2

#asp.net-веб-api #asp.net-web-api2

Вопрос:

Я получаю сообщение об ошибке ниже от моего POST-запроса контроллера Web API при передаче объектов JSON от Postman

«сообщение»: «Тип носителя объекта запроса’application / json’ не поддерживается для этого ресурса.», «innererror»: { «сообщение»: «Нет средства форматирования MediaTypeFormatter для чтения объекта типа’JObject’ из содержимого с типом носителя’application / json'»., «type»: «System.Net.Http.UnsupportedMediaTypeException», «stacktrace»: » в System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken CancellationToken) r n в System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken CancellationToken)»

Тот же контроллер отлично работает при использовании Model в качестве типа параметра в POST-запросе.

Рабочий Post-запрос (здесь пользователь — модель) :

     public IHttpActionResult CreateNewMailUser([FromBody] User param)
    {
        // code
    }
 

НЕ работает запрос Post :

     public IHttpActionResult CreateNewUser([FromBody] JObject param)
    {
        // code
    }
 

Даже я пытался, но это тоже не сработало.

     public IHttpActionResult CreateNewUser(JObject param)
    {
        // code
    }
 

Любое предположение, чего мне здесь не хватает. Я убедился, что тип содержимого — application / json.

Комментарии:

1. Пожалуйста, покажите свой запрос Postman, Newtonsoft. Версия пакета Json и . Вы используете сетевую версию. Я пробовал приведенный выше код и отлично работал с webapi 2 и .Net Framework 4.7 и 4.5. Также мне не нужно было внедрять средство форматирования мультимедиа.