如何根据MVC中的其他参数值在运行时更改Displayname值?

har*_*ari 5 asp.net-mvc

[DisplayName("Planned Amt($):")]  
 public string PlannedAmount { get; set; } 
 [DisplayName("Unallocated Amt($):")] 
 public string UnallocatedAmount { get; set; }
Run Code Online (Sandbox Code Playgroud)

我在班上有这个成员.基于budgetType变量值,我需要更改两个属性的DisplayName值.请让我知道如何做到这一点.

Hal*_*Hal 3

您应该能够继承 DisplayNameAttribute 并覆盖 DisplayName 属性:

public class DisplayNameExAttribute : DisplayNameAttribute
{
    public override string DisplayName
    {
        get
        {
            // do what you want here.
            return base.DisplayName;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我实际上并没有尝试实现这一点,因此可能会对 DisplayName 属性进行编码,从而必须使用其他一些扩展点,但我会尝试确认。