获取附加了类名的属性名称

时间:2017-08-11 07:19:06

标签: c# asp.net-mvc

我正在尝试使用我的模型附加的类名来获取属性名称,以将其作为ModelState.AddModelError方法中的键值插入。

我试过这段代码:

public Dictionary<string, string> errors { get; set; }

public Validator()
{
    errors = new Dictionary<string, string>();
}

public void PatientDetailRules(PatientDetailModel model)
{
    errors.Add(nameof(model.PatientEligibility.IsBetweenForty), Resources.Ophthalmic.OPH_GOS1_EligibilityError);

    foreach (KeyValuePair<string, string> errorlist in vs.errors)
        ModelState.AddModelError(errorlist.Key, errorlist.Value);
}

这里的问题是它直接给我的属性名称为“IsBetweenForty”。现在我希望这个名字的类名为“PatientEligibility.IsBetweenForty”。因为只是属性名称没有绑定到validationmessage帮助器。因此它没有显示错误消息。

有办法吗?

1 个答案:

答案 0 :(得分:3)

IsBetweenForty(如您所见)将只返回errors.Add( model.PatientEligibility.GetType().Name + "." + nameof(PatientEligibility), Resources.Ophthalmic.OPH_GOS1_EligibilityError) 变量的名称。您需要连接type-name和property-name:

{{1}}