![](/img/trans.png)
[英]Add red border around selectize dropdownlist when asp.net mvc4 validation fails
[英]Validation of complex classes in ASP.NET MVC4 fails
使用DataAnnotation验证ASP.NET MVC4中复杂类的问题。
让我们有以下模型(简化)
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; }
}
然后,我尝试在控制器中验证此模型的实例:
// 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}
orderModel的验证应该失败,因为cust.UserName只有1个字符,但是Model需要3个字符。 同样适用于cust.DisplayName。 但是,当我验证纯Customer类时,它会按预期失败。
知道有什么问题吗?
谢谢
吉里
DataAnnotations本身不会挖掘您的对象。 您有两种选择:
1-编写自定义验证器以检查子属性
2-创建一个视图模型,其中填充了用数据注释修饰的简单属性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.