Если вы посмотрите на описание для свойства ShortName
в атрибуте Display
, вы увидите, что он имеет довольно ограниченную область из коробки :
[/g9]
Конечно, это не ограничивает вас использованием этого значения в метаданных модели, но нет никаких нативных помощников, которые делают поэтому.
Начиная с MVC 2 , ModelMetadata
предоставляет два метода доступа к базовым данным: FromStringExpression
и FromLambdaExpression
, поэтому вы на самом деле не нужно начинать с нуля при написании собственного метода помощника или расширения.
Если вы ненавидите записываете HTML-вспомогательные методы, вы можете сделать это все inline:
@ModelMetadata.FromLambdaExpression(
model => model.TransferDate, ViewData).ShortDisplayName} )
Но также вполне можно добавить метод расширения для обеспечения согласованности доступа, дедупликации кода и улучшения обработки ошибок
public static class MvcHtmlHelpers
{
public static MvcHtmlString ShortNameFor(this HtmlHelper self,
Expression> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
var name = metadata.ShortDisplayName ?? metadata.DisplayName ?? metadata.PropertyName;
return MvcHtmlString.Create(string.Format(@"{0}", name));
}
}
И затем использовать, как и любой другой вспомогательный метод:
@Html.ShortNameFor(model => model.TransferDate)
Дополнительная литература:
[Display(name="")]
и [DisplayName("")]
attributes