22

MVC4'te Model doğrulama için Veri Ek Açıklamaları kullanıyorum ve şu anda StringLengthAttribute kullanıyorum, ancak maksimum bir değer belirtmek istemiyorum (şu anda 50 olarak ayarlanmış) ancak en düşük düzeyde belirtmek istiyorum dize uzunluğu değeri.DataAnnotations StringLength Attribute MVC - maksimum değeri olmadan

Yalnızca minimum uzunluk belirtmenin bir yolu var mı? Belki kullanabileceğim başka bir özellik?

Benim şu anki kodudur:

[Required] 
    [DataType(DataType.Password)] 
    [Display(Name = "Confirm New Password")] 
    [StringLength(50, MinimumLength = 7)] 
    [CompareAttribute("NewPassword", ErrorMessage = "The New Password and Confirm New Password fields did not match.")] 
    public string ConfirmNewPassword { get; set; } 

Herhangi bir yardım çok takdir edilmektedir.

cevap

34

Yalnızca minimum uzunluğu belirtmenin bir yolu var mı? Belki başka bir özniteliği kullanabilir miyim?

Standart veri notlarını kullanarak, Hayır. Maksimum Uzunluğu belirtmelisiniz. Sadece diğer parametreler isteğe bağlıdır. Böyle bir durumda

, böyle bir şey tavsiye ediyorum:

[StringLength(int.MaxValue, MinimumLength = 7)] 

da kullanabilirsiniz bir Regex (normal ifade) bu bir gibi niteliklerin: Bu konuda

[RegularExpression(@"^(?:.*[a-z]){7,}$", ErrorMessage = "String length must be greater than or equal 7 characters.")] 

Daha burada: Password Strength Validation with Regular Expressions

+0

Teşekkürler Leniel. Dize uzunluğunu önerdiğiniz gibi yönetmek için bir regex kullanmaya başvurdum. – davey1990

1

veri açıklamaları kaldırma düşündünüz mü ve Vie Html.TextBoxFor öğeye bir Html öznitelik eklemek w?

@Html.TextBoxFor(model => model.Full_Name, new { htmlAttributes = new { @class = "form-control", @minlength = "10" } }) 

veya

@Html.TextBoxFor(model => model.Full_Name, new { @class = "form-control", @minlength = "10" } }) 
seçtiğiniz minimum uzunluk olmak:

gibi bir şey olmalı.

Bulunduğum etkiyi hızlı bir şekilde görebildiğim için html özniteliklerini görünümüme eklemek istiyorum. Veritabanınızla uğraşmadan ve geçişleri kullanıyorsanız kodları ve veritabanı güncellemelerini çalıştırmanızı gerektirmez (kod ilk yaklaşımı).

sadece EditorFor'u TextBoxFor olarak değiştirdiğinizde stilinizi kaybedeceğinizi, ancak kolay bir düzeltme yapılacağını unutmayın, tekrar stilleri görünümünüze ekleyebilir veya stilinizi CSS dosyanıza ekleyebilirsiniz.

Umut bu yardımcı olur :)