如何解决C#.NET Core 3 API模型验证忽略属性
在我的模型验证中似乎获得了不一致的回报。发生的主要问题是,只要日期无效/格式错误,它将在除日期验证之外的所有其他验证上停止。
第一个请求如何不返回有关缺少的ParticipantUserId参数的错误,而第二个请求却有可能呢? 这是预期的行为吗?
在调试的同时,我注意到在失误数组中没有显示缺失的参数,而从逻辑上讲应该是?
示例:
给出以下模型:
[Required]
[Range(1,int.MaxValue,ErrorMessage = "ParticipantUserId cannot be a negative number.")]
public int? ParticipantUserId { get; set; }
public DateTime? DateEnd { get; set; }
public DateTime? DateStart { get; set; }
[MaxLength(50)]
public string ExternalReferenceKey { get; set; }
[Required]
public int? ScheduleId{get;set;}
请求1(缺少必需的ParticipantUserId并具有无效的日期):
{
"scheduleId": 1,"correspondenceNote": "DND","dateStart": "2020-016T00:00:00","dateEnd": "2020-07-16T00:00:00","ExternalReferenceKey": null,"internalNoTe": "Note","transferEnrollmentId": null
}
返回:
{
"fields": [
{
"propertyName": "dateStart","errorMessage": "Could not convert string to DateTime: 2020-016T00:00:00"
}
],"errorMessage": "One or more validation errors occurred.","statusCode": 400
}
而
请求2(缺少必需的ParticipantUserId,但具有有效的日期):
{
"scheduleId": 1,"dateStart": "2020-07-16T00:00:00","transferEnrollmentId": null
}
返回:
{
"fields": [
{
"propertyName": "ParticipantUserId","errorMessage": "The field ParticipantUserId must be between 1 and 2147483647"
}
],"statusCode": 400
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。