|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace Microsoft.AspNetCore.Mvc.ModelBinding;
/// <summary>
/// The validation state of a <see cref="ModelStateEntry"/> instance.
/// <para>
/// <see cref="ModelValidationState"/> of <see cref="ModelStateDictionary.Root"/> is used to determine the validity
/// of <see cref="ModelStateDictionary"/>. <see cref="ModelStateDictionary.IsValid"/> is <see langword="true" />, when
/// the aggregate validity (<see cref="ModelStateDictionary.GetFieldValidationState(string)"/>)
/// of the root node is <see cref="Valid"/>.
/// </para>
/// </summary>
public enum ModelValidationState
{
/// <summary>
/// Validation has not been performed on the <see cref="ModelStateEntry"/>.
/// <para>
/// For aggregate validity, the validation of a <see cref="ModelStateEntry"/> is <see cref="Unvalidated"/>
/// if either the entry or one of thedescendants is <see cref="Unvalidated"/>.
/// </para>
/// </summary>
Unvalidated,
/// <summary>
/// Validation was performed on the <see cref="ModelStateEntry"/> and was found to be invalid.
/// <para>
/// For aggregate validity, the validation of a <see cref="ModelStateEntry"/> is <see cref="Invalid"/>
/// if either the entry or one of the descendants is <see cref="Invalid"/> and none are <see cref="Unvalidated"/>.
/// </para>
/// </summary>
Invalid,
/// <summary>
/// Validation was performed on the <see cref="ModelStateEntry"/>
/// <para>
/// For aggregate validity, the validation of a <see cref="ModelStateEntry"/> is <see cref="Valid"/>
/// if the validity of the entry and all descendants is either <see cref="Valid"/> or <see cref="Skipped"/>.
/// </para>
/// </summary>
Valid,
/// <summary>
/// Validation was skipped for the <see cref="ModelStateEntry"/>.
/// <para>
/// The aggregate validity of an entry is never <see cref="Skipped"/>.
/// </para>
/// </summary>
Skipped
}
|