2012-08-28 3 views
1

내가 가진 모델 특성 :MVC 주석 검증 데이터 제거 - 발 속성

public int? RegionId { get; set; } 

내가보기에 드롭 다운리스트를 만들 :

@Html.DropDownListFor(m => m.RegionId, Model.Regions) 

HTML에서 :

<select data-val="true" data-val-number="The field RegionId must be a number." 
</select> 

내가 제거해야 속성 data-val-number는 특별한 경우에 나에게 적합하지 않기 때문입니다.

나는 위해 Application_Start에서 시도 :

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; 

또한 RegionId이 널 (NULL) 참고.

서버 측 코드에서이 속성을 어떻게 제거 할 수 있습니까? 목록에서

+2

같은 것 할 수 있습니까? 정수가되므로 숫자가 아닌 값을 입력 할 수 없습니다. – AlexC

+0

RegionId null 값을 넣을 수 있어야합니다. – DeeRain

+0

* RegionId *에 * 필수 * 속성이 있습니까? – VJAI

답변

6

이 항목을 추가 할 필요가 (자바 스크립트되지 않음) : // { ""=을 텍스트 = SiteResources.NotSelected = 사실, 값 선정}

새로운 SelectListItem을 (하지 값 = NULL)

그리고이 항목은 데이터 발-수

위해 Application_Start에서 또 다른 방법은 유효합니다 :

ModelValidatorProviders.Providers.Clear(); 
ModelValidatorProviders.Providers.Add(new DataAnnotationsModelValidatorProvider()); 

그러나 모든 단순 유형에 대해 내재적 인 DataAnnotation 검증을 사용 중지 한 것 같습니다.

0

AlexC의 의견에서 말했듯이 모델에 정수가 필요한 경우 숫자를 전달해야합니다. ValidationFor 도우미를 제거하여 유효성 검사 메시지를받지 않아도되지만 형식이 일치하지 않을 때 Model.IsValid이 절대로 적용되지 않습니다. 당신이 컨트롤에 NULL 값을 바인딩 할 경우 , 당신은 당신의 Model.Regions 당신이 RegionId 속성에 넣어 무엇을 계획입니까이

"--Please Select--", Value: null 
"US", Value:"1", 
"Asia", Value:"2" 
+0

Model.Regions에서 새 SelectListItem {Text = SiteResources.NotSelected, Selected = true, Value = null}을 입력하십시오. 하지만이 항목을 선택하면 페이지에서 "필드 RegionId는 숫자 여야합니다."를 참조하십시오. – DeeRain

+0

새로운 SelectListItem {Text = SiteResources.NotSelected, Selected = true, Value = ""}이 유효합니다! 좋은! – DeeRain