2016-06-02 3 views
1

Моя модель:LabelFor показывает имя свойства вместо атрибута Display

public class MyMessage 
{ 
    [Required, Display(Name= "Recipient Id")] 
    public string Recipient; 
    [Required, Display(Name ="Message")] 
    public string Text; 
} 

мой взгляд:

@model MyMessage 

@Html.LabelFor(m=>m.Recipient) 
@Html.TextBoxFor(m=>m.Recipient) 
<br/> 
@Html.LabelFor(m => m.Text) 
@Html.TextBoxFor(m => m.Text) 

Визуализированное выход показывает имя свойства вместо атрибута Display. Что я сделал не так?

+0

Вы восстановили проект с момента добавления атрибута Display? –

ответ

1

Изменение поля в модели к свойствам

public class MyMessage 
{ 
    [Required, Display(Name= "Recipient Id")] 
    public string Recipient { get; set; } 
    [Required, Display(Name ="Message")] 
    public string Text { get; set; } 
} 

The ModelMetadata.DisplayName не установлен для полей. И вам все равно нужно это сделать, потому что DefaultModelBinder не устанавливает значение полей, поэтому при отправке формы значения Recipient и Text были бы null, несмотря на то, что текст, введенный в текстовые поля, и ModelState был бы недействительным, из атрибутов [Required]

Смежные вопросы