我认为这是一个非常简单的问题,但我无法找到任何解决方案,或者我认为我不知道如何搜索这些内容,所以如果之前已经提出这个问题请指点我这样的重复
假设我有这样一个类:
public class Company
{
public int ID { get; set; }
public Nullable<int> ApplicationID { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessageResourceType = typeof(MyResource),
ErrorMessageResourceName = "RequiredCompanyName")]
[Display(Name = "CompanyName", ResourceType = typeof(MyResource))]
public string EntityName { get; set; }
public Nullable<int> EntityID { get; set; }
}
我想在剃刀视图中获取与Property EntityName
关联的属性的名称。我知道使用DisplayFor
html帮助器获取资源字符串值非常容易,但我需要在这里获取与属性关联的属性值的名称,在本例中为字符串&#34 ;公司名称&#34 ;.
这可行吗?
答案 0 :(得分:0)
如果你想在剃刀中使用Display
属性的值,你也可以使用LabelFor
帮助器。但是如果你的要求不是使用这些帮助器,你可以获得类似下面的值,然后存储在ViewBag中,或者将它作为模型的一部分并在剃刀中使用它。
您可以像这样获取属性值 -
var objCompany = new Company();//Or any other way to get the instance of object.
var displayAttribute = objCompany .GetType()
.GetMember("EntityName").First()
.GetCustomAttributes(typeof(DisplayAttribute), true)
.GetValue(0);
var displayAttributeValue = ((DisplayAttribute)(displayAttribute)).Name;
displayAttributeValue
变量将包含Name
属性的Display
值,即 CompanyName