Здесь есть несколько вопросов.
Чтобы узнать, как работает JavaScriptSerializer
, прочитайте документацию . Класс пытается определить тип для базовых типов (int, bool, date и т. Д.) И возвращает Dictionary<string, object>
для более сложных случаев. Кроме того, если BLOB-объект JSON содержит специальное свойство «__type», десериализатор попытается создать объект этого типа.
Теперь о том, как это работает в MVC. Процесс отображения значений из запроса на экземпляр объекта, используемый в вашем контроллере, называется привязкой модели. Это разделено на два компонента: ModelBinder и ValueProviders. Связыватель модели знает целевой тип (например, Product), пытается создать его экземпляр, а затем заполняет его свойства значениями из запроса. Это делается путем запроса ValueProviders. Например, чтобы установить свойство Name в экземпляре Product, он запрашивает у поставщиков значения значение «Name». Поставщики значений запрашиваются последовательно и возвращают совпадение (из строки запроса, данных публикации, тела запроса JSON и т. Д.).
В Интернете есть много ресурсов по этому поводу, но у поставщиков услуг с короткими значениями на самом деле не следует беспокоиться о типах.