如何为表标题>使用Display属性的ShortName属性

Pro*_*ofK 4 asp.net-mvc asp.net-mvc-4

我看到DisplayAttribute有一个ShortName属性,但我看不到Html.ShortName帮手.如何在表格列标题中使用此短名称?我必须写自己的帮手吗?

Rap*_*aus 9

你可以写自己的帮手:

就像是

public static IHtmlString ShortLabelFor<TModel, TValue>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression) {
   var metadata = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
   var content = metadata.ShortDisplayName?? metadata.DisplayName ?? /*something else*/ ?? string.Empty;
   return new HtmlString(content);
}
Run Code Online (Sandbox Code Playgroud)

但是,从msdn:

短显示名称可以在工具提示或其他显示上下文中使用,例如表格列表视图的标题,其中完整的显示名称可能不适合.例如,在MVC中,此名称用于表格,其中列的宽度不足以显示完整的字段名称.如果此字段为null,则应使用DisplayName.

所以它看起来应该是自动的(当没有足够的空间时),但......在这里未经测试.听起来它应该以这种方式与@ Html.LabelFor一起使用.

  • 我认为"空间不够"是广泛的方式.默认情况下,它只包裹长名称,有足够的空间. (2认同)