2011-12-04 6 views
1

J'ai construit une extention pour la LabelFor qui ressemble à ceci:Html.LabelFor ne fonctionne pas?

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

C'est utilisé comme ceci:

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

La propriété ont l'attribut d'affichage comme ceci:

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

Avec un point d'arrêt, je peux voir que metadata.DisplayName est défini sur null?

Répondre

1

Le problème lorsque vous êtes loin sans aucun changement après quelques nettoyages et reconstructions. Donc le code est correct.

1

décorez votre propriété avec cet attribut à la place:

[DisplayName("Type of ad")]

Questions connexes