| File: ModelBinding\ModelStateEntry.cs | Web Access |
| Project: src\aspnetcore\src\Mvc\Mvc.Abstractions\src\Microsoft.AspNetCore.Mvc.Abstractions.csproj (Microsoft.AspNetCore.Mvc.Abstractions) |
// 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> /// An entry in a <see cref="ModelStateDictionary"/>. /// </summary> public abstract class ModelStateEntry { private ModelErrorCollection? _errors; /// <summary> /// Gets the raw value from the request associated with this entry. /// </summary> public object? RawValue { get; set; } /// <summary> /// Gets the set of values contained in <see cref="RawValue"/>, joined into a comma-separated string. /// </summary> public string? AttemptedValue { get; set; } /// <summary> /// Gets the <see cref="ModelErrorCollection"/> for this entry. /// </summary> public ModelErrorCollection Errors { get { if (_errors == null) { _errors = new ModelErrorCollection(); } return _errors; } } /// <summary> /// Gets or sets the <see cref="ModelValidationState"/> for this entry. /// </summary> public ModelValidationState ValidationState { get; set; } /// <summary> /// Gets a value that determines if the current instance of <see cref="ModelStateEntry"/> is a container node. /// Container nodes represent prefix nodes that aren't explicitly added to the /// <see cref="ModelStateDictionary"/>. /// </summary> public abstract bool IsContainerNode { get; } /// <summary> /// Gets the <see cref="ModelStateEntry"/> for a sub-property with the specified /// <paramref name="propertyName"/>. /// </summary> /// <param name="propertyName">The property name to lookup.</param> /// <returns> /// The <see cref="ModelStateEntry"/> if a sub-property was found; otherwise <see langword="null"/>. /// </returns> /// <remarks> /// This method returns any existing entry, even those with <see cref="IsContainerNode"/> with value /// <see langword="true"/>. /// </remarks> public abstract ModelStateEntry? GetModelStateForProperty(string propertyName); /// <summary> /// Gets the <see cref="ModelStateEntry"/> values for sub-properties. /// </summary> /// <remarks> /// This property returns all existing entries, even those with <see cref="IsContainerNode"/> with value /// <see langword="true"/>. /// </remarks> public abstract IReadOnlyList<ModelStateEntry>? Children { get; } }