2010-08-14 5 views
2

의 내가이 뷰 모델에서 다음 selectList의 (국가)가 있다고 가정 해 봅시다 :ASP.NET MVC 2 검증 selectList의

//.. 
private static string[] _countries = new[] { 
"USA", 
"Canada", 
"Japan" 
}; 
//... 
SelectList Countries = new SelectList(_countries, dinner.Country); 
//... 

을 그리고 나는 다음과 같은 방식으로 드롭 다운 목록 렌더링 :

<%: Html.DropDownListFor(m => m.Dinner.Country, Model.Countries) %> 

I을 Firebug를 사용하면 DropDownList에 내 값을 삽입 할 수 있으며 해당 값을 데이터베이스에 삽입 할 수 있다는 사실을 알았습니다.

주입 된 값이 없음을 확인하는 가장 좋은 방법은 무엇입니까 (DRY 방법이 바람직 함)?

답변

1

나는 DataAnnotations을 활용하고 자신의 custom validation attribute을 만드는 것이 좋습니다.

유효성 검사 논리를 캡슐화하여 (DRY 요구 사항을 충족시키는) 방법을 제공하며 서버 측 (설명 된 것과 같은 HTML 조작 방지)에 적용됩니다.

+0

감사합니다.이 답변은 내가 찾던 답변입니다. 일반 (부울 메서드)보다는 MVC 2 특정 (주석). – KPthunder

1

DB에 삽입하기 전에 항상 데이터 서버 측을 검증해야합니다. 키 제약 조건이있는 경우 업데이트 또는 삽입이 실패하기 때문에 문제가되지 않습니다. 이 경우 SQL 호출을 수행하기 전에 오브젝트의 유효성을 확인하는 서버 측 비즈니스 규칙이 있어야합니다.

정적 항목 목록에서 목록을 작성 했으므로 모델과 비교하여 모델에 포함 된 값이 유효한지 확인하기 위해 목록을 비즈니스 계층에서 사용할 수 있어야합니다. IsValid과 같은 개체를 메서드에 추가하거나 빠른 유효성 검사를 수행하고 이러한 하드 코드 된 선택 항목의 값이 존재하는지 확인합니다.