Dopo aver aggiornato il suggerimento sto ancora ottenere l'erroreCome ottenere lo StringLength da DataAnnotations
provato sia con .SingleOrDefault()
o FirstOrDefault()
ho bisogno di recuperare il valore StringLength
annotazione e qui è il mio codice ma sto ricevendo il seguente errore.
Ho cercato di attuare o meno lo stesso codice here ma ottenendo l'errore:
Sequence contains no elements
public static class DataAnnotation
{
public static int GetMaxLengthFromStringLengthAttribute(Type modelClass, string propertyName)
{
int maxLength = 0;
var attribute = modelClass.GetProperties()
.Where(p => p.Name == propertyName)
.Single()
.GetCustomAttributes(typeof(StringLengthAttribute), true)
.Single() as StringLengthAttribute;
if (attribute != null)
maxLength = attribute.MaximumLength;
return 0;
}
}
// chiamata:
int length = DataAnnotation.GetMaxLengthFromStringLengthAttribute(typeof(EmployeeViewModel), "Name");
public class EmployeeViewModel
{
[StringLength(20, ErrorMessage = "Name cannot be longer than 20 characters.")]
public string Name{ get; set; }
}
se si dispone di "MinimumLength = 1', quindi si impone di avere min-length? anche se i campi sono facoltativi? –
@AbuHamzah: - Aggiornata la mia risposta. Si prega di controllare! –
Ho aggiornato la mia domanda, ottenendo sempre lo stesso errore –