【发布时间】:2021-01-08 13:18:19
【问题描述】:
我有以下请求模型:
public class VisitRequest
{
public ProviderInfo Provider { get; set; }
[Required]
[MaxLength(64)]
public string PayerId { get; set; }
}
我有如下自定义类:
public class ProviderInfo
{
[Required]
[MaxLength(15)]
public string TaxId { get; set; }
[Required(ErrorMessage = " Qualifier is required.")]
[MaxLength(15)]
public string NPI { get; set; }
}
我目前正在使用 ValidationContext 进行模型验证:
var visitData = JsonConvert.DeserializeObject<VisitRequest>(jsonString);
var vc = new ValidationContext(visitData);
var errorResults = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(visitData, vc, errorResults, true);
我的演示 json 请求如下:
{
'Member': {
'Qualifier': 'MedicaidID',
'Identifier': '100'
},
'ExternalVisitID': '123456789',
}
现在我在 ErrorResult 中收到 ErrorMessage 为:
PayerId is required.
但我没有得到自定义类的验证。如何在 .Net Core Console 应用程序 中实现这一点? 我对 .Net Core 还很陌生,因此我们将不胜感激。谢谢!
更新:
我遵循了@John H 给出的答案,但仍然存在一个问题。
如果我的要求是:
'Provider' : {
'TaxId' : null
}
它会正常工作,因为它能够识别这是类型 ProviderInfo 对象。
但如果我的请求不包含有关提供者的任何信息:
{
'ExternalVisitID': '123456789',
'EVVMSID': '100',
}
那么它无法验证对象。
【问题讨论】:
标签: c# .net validation .net-core data-annotations