2014-04-01 58 views
4

林我有一個列表:流利的驗證集合項不爲空/空

public List<int> TransDrops { get; set; } 
視圖IM列表中的每個項目創建文本框

我想隨後確保每個字段填寫。(不是空/空)

OrderDetailsViewModelValidator是在模型驗證,我需要什麼?

感謝

回答

6

首先,你必須使用集合項目可空整數類型,否則爲空文本框將被綁定到值,是什麼讓無法區分空文本框,並用零填充。

public List<int?> TransDrops { get; set; } 

接下來,使用謂詞驗證(必由之路規則):

RuleFor(model => model.TransDrops) 
    .Must(collection => collection == null || collection.All(item => item.HasValue)) 
    .WithMessage("Please fill all items"); 

如果需要防止空的集合被成功驗證,就斷言驗證前添加NotEmpty()規則:它會檢查任何IEnumerable不是null,並且至少有1個項目。

+0

您還應該防範列表爲空,並且爲空。 – krillgar