如何在html.LabelFor中显示一些文字?

r.r*_*r.r 8 asp.net-mvc html-helper

我这样做int:

Hello <%=  Html.LabelFor(user => user.UserName)%>
Run Code Online (Sandbox Code Playgroud)

但是我得到的不是Property中的值,而是像这样奇怪的东西:

Hello User Name,
Run Code Online (Sandbox Code Playgroud)

如何才能在标签中给出一些价值呢?

dav*_*ser 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; }
}
Run Code Online (Sandbox Code Playgroud)

来源:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute(v=VS.95).aspx

如果您没有提供显示名称,DisplayAttributeHtml.EditorFor(...)使用属性名称,将其拆分为大写字母:

PropertyName - >标签文本
电子邮件 - >电子邮件
电子邮件地址 - >电子邮件地址


Jon*_*ter 10

这样Html.LabelFor做的原因是因为它会这样做 - 为属性创建一个标签.在这种情况下,它生成一个"用户名"标签,因为属性名称是UserName.

您只需要查看模型(或传递给视图的任何内容)以返回属性值: Html.Encode(Model.UserName)

更新(因为这是近3年前,但人们最近投票):

您可以使用<%: Model.UserName %>获取HTML编码值(<%=将其写为原始值并将<%:其编码).

如果您正在使用Razor视图引擎,那么@Model.Username它将编写出来.