Была идея сделать так: брать тип модели который ожидается в контроллере, и проверять, соответсвует ли джейсон этому типу, если нет, то отправлять ошибку, если он то дальше
Из вариантов как достать нужный нам тип для проверки:
1) брать тип параметра из экшнДескриптора. Но тут трабл в том, что я не могу быть уверен в том что аттрибут правильно определит параметр самой модели, ибо параметр может быть не того имени что я ожидаю (искать модель по имени параметра), или не в том месте где я его жду (обычно я пишу модель последним параметром, и могу искать его а-ля "context.ActionDescriptor.Parameters.Last().ParameterType", но опять же, если как-то получится что он не последний то отлаживать это будет капец сложно)
2) передавать тип в контруктор атрибута
И потом генерировать жсон схему из него, и валидировать входящий жсон по схеме из ожидаемого типа