반응형
MVC 및 데이터 주석을 사용하여 클라이언트 측에 0보다 큰 유효성 검사기를 추가하는 가장 좋은 방법은 무엇입니까?
특정 필드의 값이 0보다 큰 경우에만 양식 제출을 허용하고 싶습니다. Mvc 범위 속성을 사용하면 테스트보다 큰 값만 나타 내기 위해 1 개의 값만 입력 할 수 있다고 생각했지만 최소값과 최대 값을 고집하므로 운이 없습니다.
이것이 어떻게 달성 될 수 있는가?
기본 데이터 유형이 보유 할 수있는 것보다 큰 숫자를 저장할 수 없으므로 Range 속성에 최대 값이 필요하다는 사실은 매우 좋은 것입니다. 그 기억 ∞
다음 작동합니다, 그래서 현실 세계에 존재하지 않습니다
[Range(1, int.MaxValue, ErrorMessage = "Please enter a value bigger than {1}")]
public int Value { get; set; }
이 답변은 float / double에 대한 양수 값을 확인하려고합니다. 이 유형은 'Epsilon'에 유용한 상수를 가지고 있습니다.
0보다 큰 가장 작은 양의 System.Double 값을 나타냅니다.
[Required]
[Range(double.Epsilon, double.MaxValue)]
public double Length { get; set; }
다음과 같이 고유 한 유효성 검사기를 만들 수 있습니다.
public class RequiredGreaterThanZero : ValidationAttribute
{
/// <summary>
/// Designed for dropdowns to ensure that a selection is valid and not the dummy "SELECT" entry
/// </summary>
/// <param name="value">The integer value of the selection</param>
/// <returns>True if value is greater than zero</returns>
public override bool IsValid(object value)
{
// return true if value is a non-null number > 0, otherwise return false
int i;
return value != null && int.TryParse(value.ToString(), out i) && i > 0;
}
}
그런 다음 해당 파일을 모델에 포함하고 다음과 같은 속성으로 사용합니다.
[RequiredGreaterThanZero]
[DisplayName("Driver")]
public int DriverID { get; set; }
나는 일반적으로 드롭 다운 유효성 검사에 이것을 사용합니다.
반응형
'Program Tip' 카테고리의 다른 글
객체 배열을 기본 유형의 배열로 변환 (0) | 2020.10.15 |
---|---|
Xcode에서 파일 이름 변경 또는 리팩터링 (0) | 2020.10.15 |
둘 이상의 iPhone 응용 프로그램간에 데이터 공유 (0) | 2020.10.15 |
JVM을 실행해야 할 때 Java 플랫폼에 어떻게 독립적입니까? (0) | 2020.10.15 |
Enhanced for 문은 배열에 대해 어떻게 작동하며 배열에 대한 반복기를 가져 오는 방법은 무엇입니까? (0) | 2020.10.15 |