我的模特是:
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 :(得分:2)
将模型中的字段更改为属性
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
未设置字段的值,因此当您提交表单时,Recipient
和Text
的值将为{{1}尽管您在文本框中输入了哪些文字,null
由于ModelState
属性