Ответ 1
Отметить свойство атрибутом ReadOnly.
[ReadOnly(true)]
public decimal BodyMassIndex { get; private set; }
Следуйте ниже ссылке для получения дополнительной информации. Изменено ли поведение DataAnnotations в asp.net mvc 3?
Я пытаюсь сделать поле ID
только для чтения. Это поле Identity в БД, поэтому пользователь не будет его устанавливать. Однако они хотели бы это увидеть. Что мне не хватает, как показано ниже, когда назначено значение DataForm
, все еще позволяет редактировать это значение.
public class StatusChoice : BindableBase
{
private int id;
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Editable(false,AllowInitialValue = false)]
public int ID
{
get { return id; }
set
{
id = value;
OnPropertyChanged();
}
}
}
Отметить свойство атрибутом ReadOnly.
[ReadOnly(true)]
public decimal BodyMassIndex { get; private set; }
Следуйте ниже ссылке для получения дополнительной информации. Изменено ли поведение DataAnnotations в asp.net mvc 3?
У вас есть два варианта в общем, исходя из ситуации.
[Editable(false)] or [ReadOnly(true)]
Ниже приведены описания из MSDN
System.ComponentModel.ReadOnlyAttribute
https://msdn.microsoft.com/en-us/library/system.componentmodel.readonlyattribute%28v=vs.110%29.aspx
Указывает, связано ли свойство, связанное с этим атрибутом, только для чтения или чтения/записи. Члены, отмеченные атрибутом ReadOnlyAttribute, установленным в true или которые не имеют метода Set, не могут быть изменены. Члены, не имеющие этого атрибута или помеченные знаком ReadOnlyAttribute, установленным в false, являются read/write, и их можно изменить. По умолчанию используется значение No.
System.ComponentModel.DataAnnotations.EditableAttribute
Указывает, доступно ли поле данных.
Наличие атрибута EditableAttribute в поле данных указывает, должен ли пользователь изменять значение поля. Этот класс не обеспечивает и не гарантирует, что поле доступно для редактирования. Основное хранилище данных может позволить изменять поле независимо от наличия этого атрибута.