2

그래서 ASP.NET MVC 3 및 ​​Entity Framework 4.1 (코드 우선)을 사용하고 있습니다.프로그래밍 방식으로 데이터 주석 유효성 검사 속성을 설정하는 방법

public class Person 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    [Range(18, 99)] 
    public int Age { get; set; } 
} 

범위 검증이 제대로 발사된다

는이 같은 클래스가 있습니다. 그러나 예를 들어, 어떤 경우 Age 속성의 범위를 변경하고 싶습니다. 또는 심지어 그것을 끕니다. Model 클래스를 변경하지 않고 어떻게해야합니까? 이것은 프로그래밍으로 만들 수 있습니까?

+0

'어떤 상황'이 무슨 뜻인지 분명히 할 수 있겠습니까? 다른 행동을 의미 했습니까? –

+0

예 : 사용자는 14 세의 사용자를 생성 할 권한을 가질 수 있습니다. 분명히 말하면, 제 질문은 문제의 문제를 해결하는 것이 아니라 MVC 아키텍처 문제를 다루는 방법에 관한 것입니다. – iuristona

답변

1

방금이 사례에 대한 해결책을 알았습니다.

예 : 사용자는 14 세의 사용자를 생성 할 권한을 가질 수 있습니다. 모델을 저장하기 전에

, 우리는 DataContext.GetValidationErrors을 (호출) 및 추론 할 수있는 유일한 오류 검증은 우리가 비활성화하려는 경우, 다음

DataContext.Configuration.ValidateOnSaveEnabled = false를 설정할 수 있습니다;

이렇게하면 모델을 저장할 수 있습니다.

0

예, 유효성 검사기를 프로그래밍 방식으로 주입 할 수 있습니다. 일부 속성은 읽기 전용이므로 기존 유효성 검사기를 변경하면 별도의 문제가 발생하므로 기존 유효성 검사기를 삭제하고 바꿔야 할 수 있습니다.

내 대답 to this question에 따라 유효성 검사기에서 작동하는 클래스를 추가 할 수 있습니다.