Метод, который вы, вероятно, ищете, это BindModel
. Вот краткий обзор того, как работает механизм связывания моделей по умолчанию, предположим, у вас есть следующий класс:
public class MyModel
{
public int Id;
public string Name;
}
Когда MVC пытается привязать данные к MyModel
, он вызывает BindModel
в связывателе модели по умолчанию. Этот связыватель определяет, что MyModel
не является «простым» типом данных (то есть int
, decimal
, string
и т. Д.). Затем он извлекает возможные члены, с которыми он может связываться, затем находит правильный связыватель модели для каждого из этих типов и вызывает метод связывания модели BindModel
для поля / свойства, поэтому связывание модели сложного типа действительно рекурсивно. звоните.
Обычно я бы предложил написать связыватель модели только для десятичного числа и установить его в качестве связывателя модели для этого типа данных, но я слышал, что у других были проблемы с этим (я сам не пробовал). Поэтому сначала я попробую это, и если это не сработает, то просто проверьте этот тип модели в методе BindModel
связывателя модели по умолчанию и обработайте этот особый случай.
Это очень общий обзор привязки модели, и он даже не стал бы предполагать, что это все, что вам нужно знать о том, как работает эта область.