我正在尝试使用我的模型附加的类名来获取属性名称,以将其作为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帮助器。因此它没有显示错误消息。
有办法吗?
答案 0 :(得分:3)
IsBetweenForty
(如您所见)将只返回errors.Add(
model.PatientEligibility.GetType().Name + "." + nameof(PatientEligibility),
Resources.Ophthalmic.OPH_GOS1_EligibilityError)
变量的名称。您需要连接type-name和property-name:
{{1}}