2011-12-04 19 views
1

我已经建立了LabelFor一个extention,看起来像这样:Html.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(Name = "Type of ad", Description = "")] 

有了断点,我可以看到metadata.DisplayName设置为null?一对夫妇清洗后

[DisplayName("Type of ad")]

回答

1

问题时远没有任何变化和重建:

1

与此属性,而不是装饰你的财产。所以代码是正确的。