2010-08-17 3 views
1

누구나 가변 범위를 가질 수 있도록 Range 속성을 확장 했습니까? MVA 2 (DataAnnotations 네임 스페이스)의 RangeAttribute를 확장하여 오늘 날짜를 기준으로 가변 날짜 범위를 갖습니다.

나는 유사한 필요가 있지만, 나는이 일을 할 수 없습니다 :

가 브라우저에 렌더링되는 페이지에 아무것도 없다
public class YearRangeAttribute : RangeAttribute 
    { 
     public YearRangeAttribute() 
      : base(typeof(DateTime), DateTime.Now.AddYears(-100).Year.ToString(), DateTime.Now.AddYears(-14).Year.ToString()) { } 

    } 

.

아이디어가 있으십니까?

답변

2
# public class YearRangeAttribute : RangeAttribute 
# { 
#   
# 
# 
#  public YearRangeAttribute() 
#   : base(DateTime.Now.AddYears(-100).Year, DateTime.Now.AddYears(-16).Year) { } 
#     
#   
#    
# } 

과 Global.asax.cs에

TIA :

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(YearRangeAttribute), typeof(RangeAttributeAdapter)); 

건배

Lizet

+0

내가 다른 포럼에 I didn를 – Lizet

+0

감사 대답을 얻었다 ' 글로벌 파일에 등록해야한다는 것을 알고 있습니다. –

1

여기서 일하고있어 예 :

public class PermittedYearRangeAttribute : RangeAttribute 
{ 
    public PermittedYearRangeAttribute() 
     : base(1900, DateTime.Now.AddYears(-50).Year) 
    { 
     ErrorMessage = string.Format("Year must be between 1900 and {0}", DateTime.Now.AddYears(-50).Year); 
    } 
} 
Global.asax.cs Application_Start() 방법에서

는 모델 장식 속성에서 라인

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(PermittedYearRangeAttribute), typeof(RangeAttributeAdapter)); 

를 다음을 추가합니다

[Required(ErrorMessage = "Please enter year")] 
[PermittedYearRange] 
public int Year { get; set; } 

HTML을 렌더링 :

<input class="tooltip form-control input dob--input input-validation-error" data-val="true" data-val-number="The field Year must be a number." data-val-range="Year must be between 1900 and 1965" data-val-range-max="1965" data-val-range-min="1900" data-val-required="Please enter year" id="Year" maxlength="4096" name="Year" placeholder="YYYY" tabindex="" type="text" value="0"> 
관련 문제