2013-02-09 33 views
10

Có ai vui lòng chia sẻ việc triển khai các thông báo lỗi riêng biệt cho độ dài chuỗi tối thiểu và tối đa bằng chú thích dữ liệu trong MVC không?Thông báo lỗi riêng biệt cho độ dài chuỗi tối thiểu và tối đa - Chú thích dữ liệu MVC4

Dường StringLength chỉ cho phép một thông báo lỗi duy nhất một MinLength/MaxLength không tạo đánh dấu xác nhận không phô trương như họ không IClientValidatable

Mặc dù điều này có vẻ như là một yêu cầu rất phổ biến tôi không thể tìm thấy một thực hiện trên web.

+1

[Cụm từ thông dụng?] (Http://stackoverflow.com/a/8184202/609176) –

+0

Những người này có tạo thuộc tính xác thực không phô trương không? – parliament

+1

Yup, javascript sẽ thực thi phía máy khách biểu thức chính quy –

Trả lời

21

Bạn có thể sử dụng chú thích dữ liệu RegularExpression để kiểm tra mức tối thiểu và sử dụng thuộc tính StringLength để kiểm tra tối đa. Javascript sẽ thực hiện phía khách hàng biểu thức chính quy để chúng đẹp và không phô trương! Bạn chỉ có thể sử dụng một thuộc tính RegularExpression cho mỗi thuộc tính, nếu không bạn có thể thực hiện cả tối đa và tối thiểu bằng cách sử dụng cụm từ thông dụng.

tối thiểu 5 ký tự

[RegularExpression(@"^.{5,}$", ErrorMessage = "Minimum 5 characters required")] 

tối đa 50 ký tự

[StringLength(50, ErrorMessage = "Maximum {2} characters exceeded")] 
+0

Hey tôi chỉ cố gắng này và tôi không thể sử dụng 2 nó nói thuộc tính trùng lặp! lol Tôi vẫn cần một giải pháp: ( – parliament

+1

Ah. Tôi biết họ làm việc kín đáo ... Điều gì về việc sử dụng một trong những điều này cho tối thiểu và '[StringLength (50, ErrorMessage =" Tối đa {2} ký tự vượt quá ")]' cho max? –

+0

Ý tưởng hay :) Tôi đã sử dụng StringLength (int.MaxValue, ErrorMessage = "Minimum") cho min và regex cho max. cảm ơn một lần nữa – parliament

14

Mặc dù nó không phải là thông điệp riêng biệt, đây là những gì tôi đã làm:

[StringLength(30, ErrorMessage = "Must be between {2} and {1} characters long.", MinimumLength = 6)] 
+0

Cái này ngắn hơn và nó hoạt động. –

+0

Nếu bạn không sử dụng [Bắt buộc] và chuỗi rỗng, thì MinimumLength bị bỏ qua. – CooncilWorker

1
[StringLength(800, ErrorMessage = "<img src='/images/icon-info.png' /><p>The {0} must be between {2} and {1} characters long.</p>", MinimumLength = 6)] 

này sẽ hiển thị hình ảnh và cũng có chiều dài tối thiểu và tối đa.

Các vấn đề liên quan