2010-05-26 6 views
3

ASP.NET 웹 폼 환경에서 ASP.NET 유효성 검사 컨트롤을 사용합니다. 전체 페이지를 다시 게시하지 않고 AJAX를 사용하여 필드의 유효성을 검사하는 것과 같은 모든 유효성 검사 규칙을 서버 측에서 유지하는 것이 더 나은 방법입니다.ASP.NET AJAX 유효성 검사 컨트롤

ValidatorCallout (http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ValidatorCallout/ValidatorCallout.aspx)이라는 컨트롤이 하나 발견되어 더 나은 접근 방법이 있는지 알아 내려고했습니다.

+0

나는 ValidatorCallout도 사용했고 즐겁게 놀랐다. 구체적인 문제 또는 귀하의 우려는 무엇입니까? –

+0

BTW : 나는 서버 쪽 유효성 검사에 대한 귀하의 질문을 이해하지 못합니다. 클라이언트 측 및 서버 측 유효성 검사를 수행하는 것이 가장 좋습니다. 두 가지 모두 ValidatorCallout에 아무런 문제가 없습니다. –

+0

이상적으로는 모든 유효성 검사 논리가 서버 쪽에서 있고 클라이언트의 필드 당 동일한 규칙을 만드는 것과 반대되는 비즈니스 개체와 연결되어 있습니다. 따라서 폼은 AJAX를 통해 클라이언트를 호출하여 부분 페이지 포스트 백을 사용하여 필드의 유효성을 검사합니다. 솔직하게 저는 HTML을 더 깨끗하게하고 싶습니다. 그래서 HTML에 임베드 된 많은 수의 유효성 검사 컨트롤이 없습니다. – Josh

답변

4

클라이언트 측 유효성 검사를 수행하는지 여부에 관계없이 항상 서버 측 유효성 검사를 수행해야합니다. 이는 js를 끄거나 페이지를 사용하지 않는 사용자 정의 빌드 요청을 보내는 것과 같이 클라이언트 쪽 유효성 검사와 관련하여 여러 가지 방법이 있기 때문입니다.

클라이언트와 서버 모두에서 동일한 유효성 검사 규칙을 사용하는 것이 좋습니다. xVal이 좋은 선택입니다.

정말 좋은 예가 두바이 여행을위한 특정 항공사 웹 사이트을 해킹 한 것입니다. 2 세 미만의 딸을 위해 특별 식사를 선택하려 할 때 셀렉트 목록에 "아이"옵션이 없었습니다. 분명히, 2 세 이상인 경우에만 어린이 식사를 사용할 수 있습니다. 내 딸을위한 자녀 옵션이 있습니다. 그래서 Firebug를 열고 옵션을 추가하고 선택한 다음 양식을 제출했습니다. 그것은 받아 들여졌다.

항공편에서 두 명의 어린이 식사가 주문대로 나타났습니다.

젠장! 생각 해보니, 퍼스트 클래스로 바꿔 둬야 했어! 공은 아니야, 다이슨!

+0

이 질문에 감사드립니다. 기본적으로 나는 Validation Controls가 많은 자바 스크립트 호출을 생성하기 때문에 전체 페이지 클라이언트 밸리데이션을 실행하지 않기를 원했습니다. 내 비즈니스 개체에 내 유효성 검사 규칙을 사용할 수있는 솔루션을 찾고 있었지만 AJAX를 사용하여 부분 페이지 다시 게시를 통해 클라이언트 측 유효성을 시뮬레이트했습니다. 서버 측 유효성 검사가 항상 존재합니다. – Josh

+0

문제 없습니다. AJAX를 사용하여 서버 측 유효성 검사 코드를 호출하는 것은 좋은 방법입니다. xVal에 대한 좋은 점은 여러 클라이언트 측 및 서버 측 구현 중 하나를 선택하여 선택할 수 있다는 것입니다. xVal은 변환을 수행합니다. 개인적으로 jQuery 유효성 검사를 클라이언트에서 사용하고 서버에서 FluentValidation을 사용하는 것을 선호합니다. jQuery 유효성 검사 규칙은 FluentValidation 규칙에 따라 xVal에 의해 생성됩니다. –

+0

현재 MVC가 아닌 Web Forms를 사용하고 있습니다.하지만 다음 프로젝트에서는 MVC를 사용하고 싶습니다. xVal이 1 년 동안 업데이트 된 것처럼 보이지 않습니다. 여전히 활성 프로젝트입니까? – Josh