2016-06-02 14 views
1

私のモデルは次のとおりです。LabelForは、プロパティ名の代わりに、表示属性を示している

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) 

レンダリングされた出力は、プロパティ名の代わりに、表示属性を示しています。私は何を間違えたのですか?

+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; } 
} 

ModelMetadata.DisplayNameがフィールドに設定されていません。とにかくDefaultModelBinderはフィールドの値を設定しないため、フォームを送信するときにテキストボックスに入力したテキストとModelStateが無効であったにもかかわらずとTextの値はnullになります[Required]属性

関連する問題