2016-06-02 7 views
1

Mein Modell ist:LabelFor zeigt Eigenschaftsnamen statt Anzeige Attribut

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

Meine Ansicht ist:

@model MyMessage 

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

Die gerenderte Ausgabe des Eigenschaftsnamen-Attribut anstelle des Displays angezeigt wird. Was habe ich falsch gemacht?

+0

Haben Sie das Projekt seit dem Hinzufügen des Attributs Anzeige neu erstellt? –

Antwort

1

Ändern Sie die Felder in Ihrem Modell-Eigenschaften

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

Die ModelMetadata.DisplayName ist nicht für die Felder gesetzt. Und Sie müssen dies trotzdem tun, da DefaultModelBinder den Wert der Felder nicht festlegt. Wenn Sie also das Formular absenden, wären die Werte und Textnull, obwohl der eingegebene Text in den Textfeldern und ModelState ungültig wäre der [Required] Attribute

Verwandte Themen