MvcOptions.MaxModelBindingRecursionDepth Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la profundidad máxima de recursividad del sistema de enlace de modelos. DefaultModelBindingContext si hay más de este número de IModelBinders en la pila, se producirá una InvalidOperationException excepción . Es decir, se producirá un error en un intento de recurse más allá de este nivel.
public:
property int MaxModelBindingRecursionDepth { int get(); void set(int value); };
public int MaxModelBindingRecursionDepth { get; set; }
member this.MaxModelBindingRecursionDepth : int with get, set
Public Property MaxModelBindingRecursionDepth As Integer
Valor de propiedad
El valor predeterminado es 32
, que coincide con el valor predeterminado MaxValidationDepth .
Comentarios
En algunos modelos autoreferenciales, algunos enlazadores pueden tener éxito incondicionalmente y el enlace de modelos puede dar lugar a un desbordamiento de pila. Este límite restringe la recursividad sin enlazar; es una protección contra los enlazadores y modelos incorrectos. Este límite también protege frente a jerarquías de tipos de modelo muy profundas que carecen de referencias automáticas.
Este límite no corrige el modelo enlazado. En InvalidOperationException su lugar, informa al desarrollador de un problema en su modelo. El desarrollador debe corregir ese problema.
Un valor muy alto para esta opción (int.MaxValue
por ejemplo) elimina eficazmente el límite y no se recomienda.