1

У меня есть следующий объект домена украшенной System.ComponentModel.DataAnnotations:Как получить свойства Timestamp для рендеринга, когда я использую EditorForModel()?

[HiddenInput(DisplayValue=false)]   
    public int Id { get; set; } 

    [Required] 
    [Display(Name="Last Name")] 
    public string LastName { get; set; } 

    [Display(Name = "First Name")] 
    public string FirstName { get; set; } 

    [DataType(DataType.EmailAddress)] 
    public string Email { get; set; }   

    [Timestamp] 
    [HiddenInput(DisplayValue=true)] 
    [ScaffoldColumn(true)] 
    public byte[] Version { get; set; } 

Когда я сделать мою модель в представлении не используя @Html.EditorForModel() ничего визуализируется для свойства версии. Есть ли что-нибудь, что может заставить EditorForModel() метод визуализации byte[]?

PS: Использование @Html.EditorFor(x => x.Version) работает просто отлично.

ответ

2

A byte[] считается сложным типом по методу EditorForModel, и в настоящее время нет возможности для отображения. Вы можете попробовать добавить другое свойство в свою модель (например, string), который будет читать и записывать в ваше свойство Version.

3

Вы также можете создать EditorTemplate с именем Version и спроектировать вывод, как вы сочтете нужным. добавьте для версии атрибут UIHint, чтобы использовать его.

+0

Правильный шаблон шаблона редактора должен работать. – marcind

+0

Когда я создаю настраиваемый шаблон шаблона для свойства версии, он все еще не отображается, когда я использую EditorForModel. Он появится, когда я использую EditorFor (x => x.Version) явно. –

1

Лучше напишите свой собственный шаблон (Object.ascx). Скопируйте стандартный шаблон MVC Object.ascx и измените метод ShouldShow на:

public static bool ShouldShow(ModelMetadata metadata, ViewDataDictionary viewData) { 
     return metadata.ShowForDisplay 
     && metadata.ModelType != typeof(System.Data.EntityState) 
     && (!metadata.IsComplexType || metadata.ModelType == typeof(System.Byte[])) 
     && !viewData.TemplateInfo.Visited(metadata); 
    } 
Смежные вопросы