ha riscontrato un problema con la convalida di classi complesse in ASP.NET MVC4 utilizzando DataAnnotation.Errore nella convalida di classi complesse in ASP.NET MVC4
Diamo un modello seguente (semplificato)
public class Customer
{
[Required]
[StringLength(8, MinimumLength = 3)]
public string UserName { get; set; }
[Required]
[StringLength(8, MinimumLength = 3)]
public string DisplayName { get; set; }
}
public class Order
{
public Customer customer { get; set; }
}
Poi tenta di convalidare un'istanza di questo modello in mio controller:
// CREATE A DUMMY INSTANCE OF THE MODEL
Customer cust = new Customer();
cust.UserName = "x";
cust.DisplayName = "x";
Order orderModel = new Order();
orderModel.customer = cust;
// VALIDATE MODEL
TryValidateModel(orderModel); // ModelState.IsValid is TRUE (which is incorrect)
TryValidateModel(cust); // ModelState.IsValid is FALSE (whic is correct}
Validazione di orderModel dovesse fallire come il cust.UserName ha solo 1 carattere, ma 3 sono richiesti dal Modello. Lo stesso vale per cust.DisplayName. Ma quando convalido una pura classe Customer, fallisce come previsto.
Qualche idea di cosa c'è che non va?
grazie
Jiri
per quanto ti conosco non è possibile validare oggetti nidificati come quello, magari usare un validatore personalizzato – saj
Sembra che la validazione dell'annotazione dei dati non esegua la convalida degli oggetti nidificati per impostazione predefinita. Post simile qui http://stackoverflow.com/questions/2493800/how-can-i-tell-the-data-annotations-validator-to-also-validate-complex-child-pro –