Как передать json в метод POST ASP.NET Web API

В интернете куча вопросов по поводу передачи произвольной строки json в asp.net web api. Тема на самом деле больная. На днях столкнулся с такой задачкой и решил сделать небольшой пост чтобы было куда подсмотреть в будущем.

Если ваш метод выглядит примерно так :

То действительно ничего не выйдет. В метод web api постоянно будет приходить null.  Так в чём же дело ?

А вот в чём. ASP.NET Web API пытается конвертировать пришедшую json строчку в экземпляр описанной вами модели, соответственно если модель не находится, то и конвертировать не во что, поэтому получаем null.

Конечно круто когда json превращается в класс, но бывают случаи когда этого делать не нужно.

Одним из решений проблемы может служить приведение входного json параметра к JToken (Newtonsoft.Json.Linq.JToken). Вот так нужно трансформировать метод чтобы json не превращался в null :

Также можно почитать: