Я действительно не чувствую, что это сработает.
Привязка модели использует отражение для сопоставления данных запроса, данных маршрута и строк запроса с параметром вашего метода действия.
Данные запроса - это, по сути, все строковые данные, и поэтому defaultmodelbinder может отобразить запрос в любой простой тип значения, такой как string, integer или bool, проверив, можно ли без ошибок преобразовать строку в int или bool.
Сложные типы, такие как объект Customer, которые содержат простые типы значений (например, string и int), также могут быть отображены с использованием этой же методологии. Пример сложного типа, подобного этому, показан здесь:
public class Customer
{
public string Name {get;set}
public bool IsLongTermCustomer {get;set;}
}
Поскольку defaultmodelbinder использует отражение, я действительно не понимаю, как он узнает, как отобразить свойство типа «объект», которое может быть чем угодно.
Объектом может быть Customer, int, строка и т. Д., Поэтому я чувствую, что это не получится, независимо от того, какую версию MVC вы используете, потому что я не понимаю, как defaultmodelbinder узнает, можно ли перенести данные в объект тип данных. Вот подробная статья о привязке модели конкретно в ядре MVC и о том, как она работает.
https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-2.2
В качестве дополнительной проверки я бы также посмотрел, запускаете ли вы подшивку модели по умолчанию mvc в своем более старом приложении и что кто-то не использует привязку пользовательской модели, которая может допускать эту привязку в вашем устаревшем приложении.