ASP.NET MVC 2의 DataAnnotations를 사용하여 숫자 만 허용하거나 허용 된 문자열의 화이트리스트 만 제공 할 수 있습니까? 예?DataAnnotations - 숫자 허용 안 함 또는 주어진 문자열 만 허용
12
A
답변
27
RegularExpressionAttribute을 사용하십시오.
[RegularExpression("^[a-zA-Z ]*$")]
등
가뭔가 A-Z 대소 및 스페이스와 일치한다.
흰색 목록은 "화이트"와 위의 문자열을 허용해야하므로 D가 숫자가 아닌 문자를 나타냅니다
[RegularExpression("^\D*$")]
\ "목록"허용해야
[RegularExpression("white|list")]
과 같을 것 0-9 이외의 모든 것.
정규 표현식은 까다로운하지만 몇 가지 유용한 테스트 도구처럼 온라인이 있습니다 : http://gskinner.com/RegExr/
3
예. 당신은 정규 표현식보다 더 나은 성능을 가지고 자신의 유효성 검사기를 쓸 수 있습니다 정규 표현식 http://www.regexlib.com/CheatSheet.aspx
1
에 "[으로 RegularExpression]"
이 좋은 사이트를 사용합니다.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace Utils
{
/// <summary>
/// Define an attribute that validate a property againts a white list
/// Note that currently it only supports int type
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
sealed public class WhiteListAttribute : ValidationAttribute
{
/// <summary>
/// The White List
/// </summary>
public IEnumerable<int> WhiteList
{
get;
}
/// <summary>
/// The only constructor
/// </summary>
/// <param name="whiteList"></param>
public WhiteListAttribute(params int[] whiteList)
{
WhiteList = new List<int>(whiteList);
}
/// <summary>
/// Validation occurs here
/// </summary>
/// <param name="value">Value to be validate</param>
/// <returns></returns>
public override bool IsValid(object value)
{
return WhiteList.Contains((int)value);
}
/// <summary>
/// Get the proper error message
/// </summary>
/// <param name="name">Name of the property that has error</param>
/// <returns></returns>
public override string FormatErrorMessage(string name)
{
return $"{name} must have one of these values: {String.Join(",", WhiteList)}";
}
}
}
샘플 사용 :
[WhiteList(2, 4, 5, 6)]
public int Number { get; set; }
다음
나는 INT 속성에 대한 화이트리스트 검증을 썼다
관련 문제
- 1. TextBox에서 숫자 만 허용 ASP.NET
- 2. iOS : Facebook 앱 로그인을 탭하지 않아도 허용/허용 안 함
- 3. NerdDinner 자습서에 따라 중복 허용 안 함
- 4. Robots.txt 특정 폴더 이름 허용 안 함
- 5. 같은 브라우저에서 여러 탭 허용 안 함
- 6. 페이지 다시 제출 허용 안 함
- 7. 숫자 만 허용 - 사용자 입력 허용하지 않음
- 8. 둥근 괄호 사이에 숫자/연도 만 허용
- 9. 목록 또는 문서 라이브러리에 항목 추가 허용 안 함
- 10. 텍스트 상자에 숫자 문자 만 허용 하시겠습니까?
- 11. Zend_Validate_Regex - 문자, 숫자 및 문자 만 허용 -_
- 12. 유효한 시간 만 허용
- 13. ActionFilter가있는 특정 페이지를 제외한 모든 페이지 허용 안 함
- 14. 목록에 주석 만 허용
- 15. 특정 문자 만 허용
- 16. 정의하고 허용 안 직접 액세스
- 17. EditText 내에서만 문자열 허용
- 18. 숫자 만있는 정규 표현식에 대한 유효성 검사 및 공백 및 글자 허용 안 함
- 19. 문제 301 리디렉션 백엔드에서 로그인 허용 안 함
- 20. LocationManager의 "허용 안 함"은 로깅 오류를 계속합니다.
- 21. 위치 관리자에게 "허용 안 함"을 처리하는 방법은 무엇입니까?
- 22. IIS 7에서 "모든 사용자 허용"규칙을 사용 안 함
- 23. 목록 상자에서 선택 취소/선택 취소 허용 안 함
- 24. WCF WebService. 8KB 이상의 데이터 전송 허용 안 함
- 25. 이미지 표시 및 핫 링크 허용 안 함
- 26. 날짜를 허용, null 허용
- 27. 안 여러 네트워크 연결 만 허용 한 동시에
- 28. 텍스트 입력 마스크에 양수 만 허용
- 29. 10 진수 후 2 자리 숫자 만 허용 asp.net
- 30. Robots.txt : 주요 SE 만 허용