我为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?
答案 0 :(得分:2)
使用此属性装饰您的属性:
[DisplayName("Type of ad")]
答案 1 :(得分:1)
在几次清理和重建后离开时没有任何变化的问题。所以代码是正确的。