4

I see the DisplayAttribute has a ShortName property, but I see no Html.ShortName helper. How can I get to use this short name for my table column headings? Do I have to write my own helper?

4

2 に答える 2

10

独自のヘルパーを作成できます:

何かのようなもの

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

しかし、msdnから:

短い表示名は、ツールヒントや、完全な表示名が収まらない表形式のリスト ビューのタイトルなどの他の表示コンテキストで使用できます。たとえば、MVC では、この名前は、完全なフィールド名を表示するには列の幅が十分でないテーブルで使用されます。このフィールドが null の場合、DisplayName を使用する必要があります。

したがって、自動である必要があるように見えますが(十分なスペースがない場合)、ここではテストされていません。このように @Html.LabelFor で動作するはずです。

于 2013-01-10T10:39:26.197 に答える