我正在这样做:
Hello <%= Html.LabelFor(user => user.UserName)%>
但是我得到的不是属性中的值,而是像这样奇怪的东西:
Hello User Name,
怎样才能在标签中给出一些价值呢?
答案 0 :(得分:13)
将DataAnnotations添加到模型/ viewmodel:
public class Customer
{
[Display(Name = "Email Address", Description = "An email address is needed to provide notifications about the order.")]
public string EmailAddress { get; set; }
[Display(ResourceType=typeof(DisplayResources), Name="LName", Description="LNameDescription")]
public string LastName { get; set; }
}
如果您没有按DisplayAttribute
提供显示名称,则Html.EditorFor(...)
使用属性名称,将其拆分为大写字母:
PropertyName - &gt;标签文字
电子邮件 - &gt;电子邮件
EmailAdress - &gt;电子邮件地址
答案 1 :(得分:10)
原因是因为Html.LabelFor
会这样做 - 为属性创建标签。在这种情况下,它生成一个“用户名”标签,因为属性名称是UserName。
您只需要查看模型(或传递给视图的任何内容)以返回属性值:Html.Encode(Model.UserName)
更新(因为这是近3年前,但人们最近投了赞成票):
您可以使用<%: Model.UserName %>
来获取HTML编码值(<%=
将其写为原始值并<%:
将其编码编写。)
如果您使用的是Razor视图引擎,那么@Model.Username
会将其编写为已编码。