Integration with ASP.NET MVC 문서를 따라 FluentValidation을 ASP.NET MVC 3에 성공적으로 연결했습니다.
간단한 방법은 다음과 같이 Global.asax에 위해 Application_Start()에서 MVC 검증 프레임 워크에 FluentValidation를 연결하는 것입니다
FluentValidationModelValidatorProvider.Configure();
이 그럼 당신은 그들이 사용하는 검증을 지정하는 속성으로 POCO 클래스를 장식하실 수 있습니다. 내 경우
[Validator(typeof(PersonValidator))]
public class Person {
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
}
, 난 (사용 속성) 그렇게하려면, 실제로 비즈니스 규칙에 따라 다른 검사기에 대해 같은 POCO 클래스를 검증하기 위해 필요하지 않았다.
그런 식으로 다른 유효성 검사기를 선택하려면 "custom validator factory with an IoC container"의 문서를 따르십시오. 인터페이스 IValidatorFactory를 구현하는 ValidatorFactoryBase를 서브 클래 싱하는 FluentMvcValidatorFactory 클래스를 생성합니다. 커스텀 validator 팩토리는, 적절한 validator의 선택을 처리 할 수 있습니다.
클라이언트 측 유효성 검사를 수행하려고했으나 (눈에 띄지는 않지만) 눈에 띄지 않는 유효성 검사에도 연결되는 것으로 보입니다.
<input type="text" value="" name="Email" id="Email" data-val-length-max="128" data-val-length="&#39;Email&#39; must be between 0 and 128 characters." data-val-email="&#39;Email&#39; is not a valid email address." data-val="true" class="text-box single-line">
는만큼 당신이 제대로 MVC에 연결, 나는 일을해야 눈에 거슬리지 생각 : 내 HTML이처럼 보이는 출력됩니다.
실제로는 클라이언트 측 또는 눈에 거슬리지 않은 유효성 검사에만 전적으로 의존하지 말고 입력 중에 사용자를 지원하는 데만 사용해야합니다. 궁극적으로 서버의 유효성을 검사해야하지만 서버 측 코드에서 동일한 FluentValidation 유효성 검사기를 사용할 수 있습니다.
달성/검증하려는 내용의 구체적인 예를 제공 할 수 있습니까? 너의 정확한 시나리오는 뭐니? –
글쎄, 그냥/때리는 방법은 어쨌든 상자 밖에서 눈에 거슬리지 않게 작동하지 않습니다.그것들을 위해 작동하는 해결책을 찾을 수 있다고하더라도, 그것은 한 걸음 더 가까이 다가 가게 할 것입니다. 가능성, 그것/조건없는 때 w/조건부와 함께 작동한다면, 아마도/사용자 지정 유효성 검사와 함께 작동합니다. –