MvcOptions.MaxModelBindingRecursionDepth 属性

定义

获取或设置模型绑定系统的最大递归深度。 DefaultModelBindingContext如果堆栈上超过此数目的 IModelBinder,则会引发 InvalidOperationException 。 也就是说,尝试递归超过此级别会失败。

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

属性值

默认值为 32,与默认值 MaxValidationDepth 匹配。

注解

对于某些自引用模型,某些绑定器可能会无条件地成功,并且模型绑定可能导致堆栈溢出。 此限制限制这种无界递归;它是针对不正确的模型绑定器和模型提供保护。 此限制还可防止非常深入的模型类型层次结构缺少自引用。

此限制不会 更正 绑定模型。 InvalidOperationException而是通知开发人员其模型中的问题。 开发人员必须更正该问题。

此选项的值非常高, (int.MaxValue 例如,) 有效地删除了限制,不建议这样做。

适用于