Html.Label для не работает? - PullRequest
       27

Html.Label для не работает?

1 голос
/ 04 декабря 2011

Я создал расширение для LabelFor, которое выглядит следующим образом:

public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression, Boolean showToolTip, string sufix = "")
{
    string description = string.Empty;
    var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);

    if (showToolTip)
        description = metadata.Description;

    return LabelFor(metadata.DisplayName, description, self.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(ExpressionHelper.GetExpressionText(expression)), sufix: sufix);
}

Это используется так:

<%: Html.LabelFor(model => model.ModelViewAd.TypeOfAd, false)%>

Свойство имеет атрибут Display следующим образом:

[Display(Name = "Type of ad", Description = "")]

С точкой останова я вижу, что metadata.DisplayName имеет значение null?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

Вместо этого украсьте свою собственность этим атрибутом:

[DisplayName("Type of ad")]

1 голос
/ 07 декабря 2011

Проблема, когда в гостях без изменений после пары чисток и перестроений. Так что код правильный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...