using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace Umbraco.Cms.Core.Models; /// /// A simple representation of an Umbraco member property /// public class MemberPropertyModel { [Required] public string Alias { get; set; } = null!; // NOTE: This has to be a string currently, if it is an object it will bind as an array which we don't want. // If we want to have this as an 'object' with a true type on it, we have to create a custom model binder // for an UmbracoProperty and then bind with the correct type based on the property type for this alias. This // would be a bit long winded and perhaps unnecessary. The reason is because it is always posted as a string anyways // and when we set this value on the property object that gets sent to the database we do a TryConvertTo to the // real type anyways. [DataType(System.ComponentModel.DataAnnotations.DataType.Text)] public string? Value { get; set; } [ReadOnly(true)] public string? Name { get; set; } // TODO: Perhaps one day we'll ship with our own EditorTempates but for now developers can just render their own inside the view ///// ///// This can dynamically be set to a custom template name to change ///// the editor type for this property ///// // [ReadOnly(true)] // public string EditorTemplate { get; set; } }