DataAnnotations StringLength Attribute MVC - without max value
Is there a way to only specify only a minimum length? Perhaps another attribute i can use?
Using the standard data annotation, No. You must specify the MaximumLength. Only the other parameters are optional.
In such a case, I'd recommend something like this:
[StringLength(int.MaxValue, MinimumLength = 7)]
You can also use a Regex (regular expression) attribute like this one:
[RegularExpression(@"^(?:.*[a-z]){7,}$", ErrorMessage = "String length must be greater than or equal 7 characters.")]
More on this here: Password Strength Validation with Regular Expressions
There is the [MinLength(7)] attribute as well for this purpose.
Source: https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.minlengthattribute(v=vs.110).aspx
Have you thought of removing the data annotations and add an Html attribute to the Html.TextBoxFor element in your View?
Should look something like:
@Html.TextBoxFor(model => model.Full_Name, new { htmlAttributes = new { @class = "form-control", @minlength = "10" } })
or
@Html.TextBoxFor(model => model.Full_Name, new { @class = "form-control", @minlength = "10" } })
10 being the minimum length you choose.
I like to add html attributes to my view as I can quickly see the impact it has. without messing with your database and does not require you to run migrations and database update if your using migrations (code first approach).
just remember that when you change the EditorFor to TextBoxFor you will loose your styling but should be an easy fix, again you can just add the styles to your view or add styling to your CSS file.
Hope this helps :)