일부 행동에서만 IvalidatableObject
-
12-12-2019 - |
문제
ivalidatleableObject를 구현하는 모델이 있으며 유효성 검사 방법을 통한 사용자 지정 오류 검사를 수행합니다.
객체를 생성 할 때 괜찮을 때 괜찮지 만 해당 개체를 편집하려고 할 때는 해당 사용자 정의 유효성 검사를 수행하지 않습니다.
어떻게 유효성 검사 방법을 호출 할 수 있으므로 유효성 검사를 수행 할 수 있습니까?
업데이트 : 이것은 MI 모델입니다 :
public class Ingredient : IValidatableObject
{
public int Id { get; set; }
[Required(ErrorMessage = "Required!!")]
public string Name { get; set; }
public virtual List<Product> Products { get; set; }
public Ingredient()
{
Products = new List<Product>();
}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
using (var uow = new UnitOfWork())
{
var ingredient = uow.IngredientRepository.Get(i => i.Name ==Name).FirstOrDefault();
if (ingredient != null)
yield return new ValidationResult("Duplicate!!!.", new[] { "Name" });
}
}
}
.
}
이므로 모든 것을 유효성을 검사하고 싶습니다 (속성 + 이이 라이벌) 그러나 InGrendient를 편집 할 때만 속성의 유효성을 검사하고 싶습니다 (그래서 나는 이디오가 생길 수 있음) 유효성 검사를 불러 일으키는 곳에서 iValidatable 메서드 내에서 알 수있는 방법은 무엇입니까?
감사합니다 !!!
해결책
모델의 기본 키 - null이 아닌지 여부 :)
다른 팁
더 많은 "mvcish"올바른 방법은 편집을위한 생성 방법 생성을 위해 실제로 두 개의 클래스가 있습니다.공유 유효성 검사를 위해 기본 클래스로 전화를 걸 수 있습니다. 여기에서 공유되지 않은 것에 대해서는 공유되지 않습니다.
객체의 유효성을 검사하지 않으려면 Model.IsValid
(또는 Validate()
)를 호출하지 마십시오.
제휴하지 않습니다 StackOverflow