6
遇到了使用DataAnnotation驗證ASP.NET MVC4中的複雜類的問題。驗證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個字符,但模型需要3個字符。 cust.DisplayName同樣適用。但是,當我驗證一個純粹的客戶類,然後它按預期失敗。
任何想法有什麼不對?
感謝
吉日
據我知道你不能像這樣驗證嵌套對象,也許使用自定義驗證器 – saj
默認情況下,數據註釋驗證似乎不運行嵌套對象驗證。 Simmilar post here http://stackoverflow.com/questions/2493800/how-can-i-tell-the-data-annotations-validator-to-also-validate-complex-child-pro –