문제

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())를 호출하지 마십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top