如何验证MVC模型中的嵌套对象列表?
我有一个“项目”对象,该对象具有附加的收入条目列表:
public class ItemModel
{
public int ItemID { get; set; }
public virtual List<RevenueEntryModel> Revenues { get; set;}
}
此列表可以在页面上动态编辑,每个项目都使用其自己的模型-“ RevenueEntryModel”进行单独验证。但是,我希望能够限制用户输入没有任何收益的项目。
是否可以使用数据注释来验证此收入列表是否为空?我已经在使用Foolproof,但我很确定它不包含此功能。
您可以应用自己的逻辑来检查“收入”集合中的项目数。
将类级别验证属性应用于ItemModel类。您可以为此使用System.ComponentModel.DataAnnotations.CustomValidationAttribute。
这指向您将创建的自定义方法。
属性构造看起来像这样:
[CustomValidation(typeof (MyClassWhereMethodIsLocated), "MyStaticMethodName")]
结帐this blog了解更多详细信息
previous answer可以在这里为您提供帮助。这是一个彻底的答案,但是基本上您需要使用自定义验证属性: