一个属性的显示名称(标签)可以根据另一个属性的值更改吗?

问题描述 投票:0回答:1

我有这个视图模型:

public class ProjectViewModel
{
    [Display(Name = "End date")]
    public DateTime ProjectEnd { get; set; }
    public string ProjectType { get; set; }
    // more properties
}

我希望根据ProjectEnd的值来更改ProjectType的显示名称。 ProjectType不是用户可编辑的字段,只能在控制器中以编程方式设置。

我已经尝试过:

[Display(Name = (ProjectType == "project"?"End date":"Due date"))]

...但是ProjectType抛出此编译时错误:

非静态字段,方法或属性'ProjectViewModel.ProjectType'需要对象引用。>>

我正在尝试的可能吗?我当然可以对视图中的标签进行硬编码,但我不想这样做。

另一个更好的解决方案可能是具有两个DateTime属性,并根据ProjectType的值,仅在视图中显示一个或另一个。

我有这个viewmodel:公共类ProjectViewModel {[Display(Name =“ End date”)] public DateTime ProjectEnd {get;组; }公共字符串ProjectType {get;组; } //更多属性...

asp.net-core-mvc data-annotations
1个回答
0
投票

我正在尝试的可能吗?

© www.soinside.com 2019 - 2024. All rights reserved.