2012-06-08 5 views
0

최근 페이지가 유효한지 확인하기 위해 서버 측 코드에서 일부 검사를 수행해야한다는 것을 알게되었습니다. 이전에는 유효성 검사기가 잘못된 입력을 발견하면 실행이 자동으로 중지된다는 가정하에있었습니다.Asp.net 유효성 검사 컨트롤 및 서버 쪽 유효성 검사

if (!Page.IsValid) 
     return; 

이 그것을 할 올바른 방법입니다

나는 검증을 필요로 내 이벤트에 다음 코드를 넣어?

또한 내 페이지에 두 개의 유효성 검사 그룹이 있으면 올바른 그룹이 자동으로 서버에서 실행되거나 (버튼에 의해 트리거 된 그룹) Page.Validate("groupName")을 사용하여 호출해야합니까?

감사합니다.

답변

2

클라이언트와 서버를 모두 확인하는 것이 가장 좋습니다. 클라이언트 부분은 자동으로 수행되어야하지만 누군가가 UI를 우회하는 경우 서버에서이를 확인하는 방어 조치입니다.

단추에 ValidationGroup을 할당 할 수 있습니다.이 값은 유효성 검사기에 할당 한 ValidationGroup과 동일한 값이어야합니다. 버튼을 클릭하면 클라이언트 측 유효성 검사가 동일한 그룹에서 수행 될 수 있으며 앞에서 설명한 것처럼 실행을 중단합니다 (다시 게시하지 못하도록 함). 당신이 언급 한 바와 같이 서버 측에

, 정확히 할 것입니다 : 여러 그룹이있는 경우 해당되는 경우

Page.Validate("WhateverGroup"); 
if (!Page.IsValid) 
    return; //Didn't pass validation 
else 
    //Do whatever 

는, 당신은 어떤 그룹은 특정 조건에 따라 적용되지 않을 수 있습니다 (그들 각각을 확인해야하는 일반적으로 그룹을 사용하는 이유입니다).

질문에 대한 응답으로 편집

: 페이지를 게시하는 제어에 의해 결정되는 체크

'기본'그룹. 즉, 페이지를 게시하는 컨트롤에 유효 그룹으로 "WhateverGroup"이 있으면 "WhateverGroup"이 포함 된 유효성 검사기 만 유효성이 검사됩니다.

Page.IsValidPage.Validate 메서드를 호출 한 후 후에 으로 확인해야합니다. Page.IsValid은 기본적으로 Page.Validate를 호출 할 때 기본적으로 트립되는 플래그이며 어떤 것이 그룹의 유무에 관계없이 호출되었는지에 관계없이 유효하지 않습니다.

참고 : 기본적으로

+0

그래서이 그룹 정확히 실행 하는가? Page를 확인해 보는 것만으로 충분하지 않습니까? – TheGateKeeper

+0

편집 해 주셔서 감사합니다.하지만 기본적으로 (지정한대로) 실행하더라도 유효성 검사기를 다시 호출해야하는 이유는 무엇입니까? – TheGateKeeper

+0

웹 사이트와 상호 작용하지 않고도 서버에 게시 할 수 있습니다. 누군가가 은행 웹 사이트에서 그렇게한다고 가정하면 클라이언트 측을 확인하는 것만으로는 충분하지 않을 것이며, 서버에서 더 잘 확인해야합니다.사실 웹/유닛 테스트에서 사이트와 실제로 상호 작용하지 않고 게시하여 모든 작업을 자동화하는 경우가 일반적입니다. – Jeremy

관련 문제