2011-07-28 3 views
0

등록 된 사용자로부터 많은 양식을 입력하는 B2B 애플리케이션이 있습니다. 따라서 유효성 검사가 필수적입니다. 내 애플 리케이션을위한 3 계층 아키텍처를 사용하고 있습니다. 난 그냥 서버 유효성 검사 컨트롤 및 클라이언트 쪽 유효성 검사를 무시합니다. 대신 Code Behind 기반 유효성 검사를 생각하고 있는데, 이는 내 서버에 대한 공격이 증가한다는 것을 알고 있지만 잘못하지 않았다면 가장 안전합니다. 나는이 생각하고 그래서ASP.Net 양식의 제어를 검증하기위한 일반적인 접근 방식이 필요합니다.

,

  1. 페이지의 모든 컨트롤을 열거하고 그 유효성을 확인합니다. 하지만이 방법은 비어 있는지 여부 만 확인할 수 있습니다. 또한 나는 각 페이지마다 그것을 써야한다.

    1. 또 다른 방법, 버튼의 히트를 저장하고 누락 어디에 있는지 알 동안 내가 골격 수업을 내 모델 계층에 어딘가에 최대 길이, 의무 등을 설정하고 비교 할 수 있습니다.
  2. 컨트롤의 배열로 전체 페이지 컨트롤을 가지고 유효성을 확인합니다 몇 가지 일반적인 방법 ...

일이 가능이나 다른 좋은 solution.So하는 나를 인도 해 주시기 바랍니다 내가 코드 반복을 피할 수 있습니다.

Model Layer means 

public class Employee 
{ 
    public string Name {get;set;} 
} 
+3

무엇이 당신의 질문은 무엇입니까? – Dismissile

+0

감사합니다. 업데이트했습니다. 나는 그것의 명백한 지금 생각한다. 나는 모양 유효성 검사를위한 약간 일반적인 접근을 필요로한다. –

+2

와 같은 서버 측 유효성 검사 컨트롤을 배제한 이유를 설명 할 수 있습니까? 이것들은 클라이언트 측과 서버 측 검증 모두를 수행하며 여러분이 요구하는 것을 수행합니다. –

답변

2

ASP.NET 컨트롤에서 상속 한 컨트롤 집합은 (a) 추가 유형 분류 만 사용하여 추가 할 수 있습니다. 예 : DataType (enum) 및 int, double, email 등의 속성을 허용하는 TextBox 다른 아이디어는 int 유형에 최소/최대 값 (예 : 15-32)을 추가하는 것입니다. 그리고 (b) 값이 데이터 유형과 일치하면 true/false를 반환하는 Validate 함수. 그런 다음 페이지에서 상속하는 페이지베이스를 만들고 현재 양식에서 사용중인 모든 특수 컨트롤을 반복하고 각 폼에 대해 유효성 검사 함수를 호출하는 ValidateAllMyControls라는 함수를 노출합니다. 그 중 하나가 false를 반환하면 양식이 유효하지 않습니다. :)

관련 문제