오늘 멋진 아이디어가 나왔지만 어떻게해야하는지 잘 모르겠습니다.파생 클래스와 dataAnnotations를 사용한 소프트 유효성 검사
asp.net MVC3 C#에서 페이지 형식으로 페이지를 작성합니다. 각 페이지의 끝에 임시 영역으로 저장됩니다.
이제이 데이터는 열거 가능한 클래스가 몇 개있는 클래스로 이동하므로 상대적으로 복잡합니다.
이제 사용자는 유효성 검사없이 (보안을 제외하고) 원하는 것을 무엇이든 넣을 수 있기를 바랍니다. 원하는대로 던져 넣을 수 있지만, 나는 이것이 소프트 유효성을 갖기를 바랍니다.
유효성 검사에 메타 데이터를 사용하고 싶지만 엄격한 검증을 제공하므로 양식을 모델 (강하게 입력 된)로 사용하는 클래스에 넣을 수 없습니다. 그래서, 내가 생각하는 가장 좋은 방법은 폼에서 클래스에서 클래스를 파생시키는 것입니다 모든 데이터 주석을 던져 (어떻게 든 인터페이스를 적용 할 수있는 희망,하지만 난 가정합니다. 그렇지 않다)
그런 다음 사용자가 데이터베이스에 양식을 제출하려면 양식을 검토하고 유효성을 검사하기를 원합니다. 나는 병이 데이터 주석이없는 클래스를 dataAnnotations가있는 빈 데이터로 변환하고 데이터가 유효하지 않은 경우 발생하는 모든 오류는 화면에 나열하고 tell 할 수 있음을 알 수있다. 그들을 고칠 수 있습니다.
이제 내가 할 수있는 또 다른 사항은 어떻게 든 사용자가있을 때 양식의 유효성을 검사하기 위해 주석이 달린 클래스를 사용할 수 있다는 것입니다. 그래서 나는 "이 필드를 넣는 것이 좋습니다"라고 말할 수 있습니다. 오히려 "이 필드는 비어있을 수 없습니다".
그래서, 결론 :
- 그것은 그렇다면, 어떻게, 온 오프 인터페이스를 설정 할 수 있습니까?
- 어떻게 ClassB가가를 ClassA에서 파생 dataAnnotations는
- 변환하는 동안 (2 연속), 내가 어떻게 모든 데이터 오류를 포착하고이를 나열합니다 내가 부드러운
- 오프 확인할 수있는 방법을 사용합니다 ClassB가로를 ClassA를 변환 할 것 모델이 classA 인 양식의 클래스 B
나는 이것이 가능하기를 바랍니다. 그것을하는 가장 깨끗한 방법 같다. 누구든지이 일을하는 더 좋은 방법을 생각할 수 있다면, 나는 모든 귀 ... 또는 눈입니다.
업데이트 dataAnnotations가에 잘못된 데이터를 넣고에서 저를 방해하는 인상에서 1 임. 그러나 나는 순간에 몇 가지 테스트를하고있어, 그것은 내가 프로그래밍 방식으로 잘못된 데이터를 적용 할 수 있어요 보인다 . 필수 입력란에 null이 표시됩니다. 그렇다면 데이터 주석은 페이지의 유효성 검사에만 적용됩니까? 그렇다면 내 전체 질문을 무시하십시오.
업데이트 2 사람이
관찰 해 주셔서 감사합니다. 좋은 것입니다 ... 나는 검증이 바이너리 연산이라는 것을 알고 있습니다. 나는 그것이 진실인지 거짓인지를 확인하는 것을 더보고 있지만 여전히 제출할 수 있습니다. – MrJD