동작 [MaxLength]
과 [StringLength]
속성 의 차이점은 무엇입니까 ?
내가 알 [MaxLength]
수있는 한 (배열의 최대 길이를 확인할 수 있는 예외는 있지만) 이것들은 동일하고 다소 중복됩니까?
동작 [MaxLength]
과 [StringLength]
속성 의 차이점은 무엇입니까 ?
내가 알 [MaxLength]
수있는 한 (배열의 최대 길이를 확인할 수 있는 예외는 있지만) 이것들은 동일하고 다소 중복됩니까?
답변:
맥스 길이 는 Entity Framework에서 데이터베이스를 만들 때 문자열 값 필드를 얼마나 크게 만들지 결정하는 데 사용됩니다.
MSDN에서 :
속성에 허용되는 배열 또는 문자열 데이터의 최대 길이를 지정합니다.
끈 길이 는 사용자 입력의 유효성을 검사하는 데 사용되는 데이터 주석입니다.
MSDN에서 :
데이터 필드에 허용되는 최소 및 최대 문자 길이를 지정합니다.
MaxLengthAttribute
EF는 인식합니다StringLengthAttribute
[MaxLength]
그렇다면 왜 ErrorMessage가 있습니까?
방금 다른 게시물에서 배웠지 만 매우 유용한 추가 정보가 있지만 설명서를 찾을 수없는 것 같습니다 (누군가 MSDN에서 링크를 공유 할 수 있다면 놀라 울 것입니다).
이러한 속성과 관련된 유효성 검사 메시지는 실제로 속성과 관련된 자리 표시자를 대체합니다. 예를 들면 다음과 같습니다.
[MaxLength(100, "{0} can have a max of {1} characters")]
public string Address { get; set; }
글자 수 한도를 초과하면 다음을 출력합니다 : "주소는 최대 100 자까지 가능합니다"
내가 알고있는 자리 표시자는 다음과 같습니다.
처음에 이것을 지적한 bloudraak 에게 감사드립니다 .
에 [MaxLength]
와 [StringLength]
속성을 모두 사용했을 때의 결과는 다음과 같습니다 EF code first
. 둘 다 사용 [MaxLength]
하면 레이스 에서 승리합니다. studentname
아래 클래스의 열에 있는 테스트 결과 참조
public class Student
{
public Student () {}
[Key]
[Column(Order=1)]
public int StudentKey { get; set; }
//[MaxLength(50),StringLength(60)] //studentname column will be nvarchar(50)
//[StringLength(60)] //studentname column will be nvarchar(60)
[MaxLength(50)] //studentname column will be nvarchar(50)
public string StudentName { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
}
MaxLengthAttribute는 Max를 의미합니다. 허용되는 배열 또는 문자열 데이터의 길이
StringLengthAttribute는 Min을 의미합니다. 그리고 최대. 데이터 필드에 허용되는 문자 길이
http://joeylicc.wordpress.com/2013/06/20/asp-net-mvc-model-validation-using-data-annotations/를 방문하십시오.
아래주의 할 또 다른 점은에 최대 길이의 경우에만 제공 할 수있는 속성 최대 필요한 범위되지에게 분 필요한 범위를. StringLength에 있는 동안 둘 다 제공 할 수 있습니다 .
웹 페이지의 양식에서 텍스트의 최대 입력 길이를 제한하기 위해 속성을 사용할 때 StringLength는 maxlength html 속성을 생성하는 것으로 보입니다 (적어도 MVC 5 테스트에서는). 그런 다음 선택할 텍스트 길이가 최대 텍스트 길이임을 사용자에게 알리는 방법을 결정합니다. stringlength 속성을 사용하면 사용자는 허용 된 길이를 초과하여 입력 할 수 없습니다. maxlength 속성은이 html 속성을 추가하지 않고 대신 데이터 유효성 검사 속성을 생성합니다. 즉, 사용자는 표시된 길이를 초과하여 입력 할 수 있으며 다음 필드로 이동하거나 제출을 클릭 할 때 자바 스크립트의 유효성 검사에 따라 입력 시간이 길어지지 않습니다. 자바 스크립트가 비활성화 된 경우 서버 측 유효성 검사). 이 경우 사용자에게 오류 메시지로 제한 사항을 알릴 수 있습니다.