Как показать текст в html.LabelFor? - PullRequest
       6

Как показать текст в html.LabelFor?

8 голосов
/ 07 сентября 2010

Я делаю int как это:

Hello <%=  Html.LabelFor(user => user.UserName)%>

Но я получаю не значение, которое находится в Property, а что-то странное, как это:

Hello User Name,

Как это сделать, чтобы датькакое-то значение в лейбле?

Ответы [ 2 ]

13 голосов
/ 07 сентября 2010

Добавить DataAnnotations к вашей модели / модели представления:

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

Источник: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute(v=VS.95).aspx

Если вы не предоставляете отображаемое имя с помощью DisplayAttribute, тогда Html.EditorFor(...) используетимя свойства, разделив его на заглавные буквы:

PropertyName -> текст метки
Электронная почта -> Электронная почта
Адрес электронной почты -> Адрес электронной почты

10 голосов
/ 07 сентября 2010

Причина этого в том, что Html.LabelFor сделает именно это - создаст метку для свойства.В этом случае он создает метку «Имя пользователя», так как имя свойства - UserName.

Вам просто нужно взглянуть на модель (или что бы вы ни передавали в представление), чтобы вернуть значение свойства:Html.Encode(Model.UserName)

Обновление (так как это было почти 3 года назад, но люди недавно проголосовали):

Вы можете просто использовать <%: Model.UserName %>, чтобы получить кодированное значение HTML(<%= записывает его как raw, а <%: записывает его в кодировке).

Если вы используете механизм представления Razor, @Model.Username запишет его в уже закодированном виде.

...