MVC: ObjectModelValidator가 ValidationVisitor.Validate의 새 오버로드 호출
ASP.NET Core 5.0에서 ValidationVisitor.Validate의 오버로드가 추가되었습니다. 새 오버로드는 다음 속성을 포함하는 최상위 수준 모델 인스턴스를 적용합니다.
bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel);
+ bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container);
ObjectModelValidator는 ValidationVisitor
의 새 오버로드를 호출하여 유효성 검사를 수행합니다. 새 오버로드는 유효성 검사 라이브러리가 ASP.NET Core MVC의 모델 유효성 검사 시스템에 통합된 경우에만 관련이 있습니다.
자세한 내용은 GitHub 이슈 dotnet/aspnetcore#26020을 참조하세요.
도입된 버전
5.0
이전 동작
ObjectModelValidator
가 모델 유효성 검사 중에 다음 오버로드를 호출합니다.
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel)
새 동작
ObjectModelValidator
가 모델 유효성 검사 중에 다음 오버로드를 호출합니다.
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
변경 이유
이 변경 내용은 다른 속성 검사를 사용하는 CompareAttribute와 같은 유효성 검사기를 지원하기 위해 도입되었습니다.
권장 작업
.NET 5 이상을 대상으로 하는 경우 ObjectModelValidator
를 사용하여 ValidationVisitor
의 기존 오버로드를 호출하는 유효성 검사 프레임워크는 새 메서드를 재정의해야 합니다.
public class MyCustomValidationVisitor : ValidationVisitor
{
+ public override bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
+ {
+ ...
}
영향을 받는 API
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET