模型类 DisplayFormat() 如何本地化 NullDisplayText

本文关键字:本地化 NullDisplayText DisplayFormat 模型 | 更新日期: 2023-09-27 18:19:33

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

这是我所做的工作。

我创建了以下类,该类可以本地化任何属性的 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 */;
        }
    }
}