예를 들어
[Required(ErrorMessage="Title is required"]
[StringLength(20)]
public string title {get; set;}
이런식으로 text필드의 유효성 검사를 한다고하면,
체크박스는 어떤식으로 해야하는지 궁금해서 이렇게 글 남깁니다.
[Required(ErrorMessage="동의")]
[]<==??
public bool chk{get; set;}
좋은 하루 보내세요~~&^^
Comment 2
-
컴포지트
2011.11.16 10:29
-
소주왕자
2011.11.17 16:50
답변 감사드립니다..^^
제가 나름 해결 했던것 올려드립니다..
model cs쪽 변수선언
[BooleanRequired(ErrorMessage = "※이용약관에 동의해 주세요")]
public bool MembershipAgree { get; set; }클래스
public class BooleanRequiredAttribute : ValidationAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
return value != null && (bool)value == true;
}public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
//return new ModelClientValidationRule[] { new ModelClientValidationRule() { ValidationType = "booleanrequired", ErrorMessage = this.ErrorMessage } };
//yield return new ModelClientValidationRule() { ValidationType = "booleanrequired", ErrorMessage = this.ErrorMessageString };
ModelClientValidationRule rule = new ModelClientValidationRule();
rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType = "booleanrequired";
yield return rule;
}
}
일단 HTTP 전송 논리로 설명드리겠습니다.
체크박스는 체크하면 그 체크박스에 정의된 value 값이 전송됩니다.
하지만 체크 안하면 value 값이 아닌 빈 값이 전송됩니다.
그렇게 된다면, <input value='checkbox' name='name' value='value'/> 일때,
체크하면 POST 값에는 name=value 가 들어가지만 체크 안하면 name= 처럼 이렇게 빈 값이 들어갑니다.
이걸 이용해서 개발하시면 되겠습니다.