Модель класса DisplayFormat() Как мне локализовать NullDisplayText?
public class Board
{
[Display(ResourceType=(typeof(MVC.Resources.Board)), Name="TEST")]
[DisplayFormat(NullDisplayText="")]
public int? ItemId { get; set; }
public string Title { get; set; }
public string Contents { get; set; }
public string Author { get; set; }
public DateTime Date { get; set; }
}
это модель MVC, как я могу отобразить локализацию DisplayFormat (NullDisplayText)
2 ответа
Решение
Вот то, что я сделал, это работает.
Я создал следующий класс, который может локализовать NullDisplayText для любого свойства.
public class LocalizedNullDisplayText : DisplayFormatAttribute
{
private readonly PropertyInfo _propertyInfo;
public LocalizedNullDisplayText(string resourceKey, Type resourceType)
: base()
{
_propertyInfo = resourceType.GetProperty(resourceKey, BindingFlags.Static | BindingFlags.Public);
if (_propertyInfo == null) return;
base.NullDisplayText = (string)_propertyInfo.GetValue(_propertyInfo.DeclaringType, null);
}
}
Я ссылался на это так:
[LocalizedNullDisplayText("ReviewerName_NullTextDisplay", typeof(RestaurantReviewResources))]
public string ReviewerName { get; set; }
Отлично работает.
public class LocalizedDisplayFormatAttribute : DisplayFormatAttribute
{
public LocalizedDisplayFormatAttribute()
: base()
{
}
public new string NullDisplayText
{
get
{
return base.NullDisplayText;
}
set
{
base.NullDisplayText = /* Return Text */;
}
}
}