1
我不确定标题是否清晰。让我更好地解释它:验证注释模型列表
我有两个型号:
1个GuestResponse.cs:
public class GuestResponse
{
[Required(ErrorMessage="Please enter your name")]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter your email address")]
[RegularExpression(".+\\@.+\\..+", ErrorMessage="Please enter a valid email address")]
public string Email { get; set; }
[Required(ErrorMessage = "Please enter your phone number")]
public string Phone { get; set; }
[Required(ErrorMessage = "Please especify wheter you will attend")]
public bool? WillAttend { get; set; }
}
2- CompanyGuestResponse.cs:
public class CompanyGuestResponse
{
[Required(ErrorMessage = "Please enter your company name")]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter your company email address")]
[RegularExpression(".+\\@.+\\..+", ErrorMessage = "Please enter a valid email address")]
public string Email { get; set; }
[Required(ErrorMessage = "Please enter your company phone number")]
public string Phone { get; set; }
public IList<GuestResponse> GuestResponses { get; set;}
}
我也有一个强烈CompanyGuestResponse模型的视图,其中有一个表格,可让用户为属性GuestResponses提供输入。
我想只能在表格的填充行被正确验证(即,不要试图验证没有填充的行)并且至少有一行被正确填充的情况下才能提交表单。
我试图通过与没有成功ViewModel validation for a List描述创建自定义注释来做到这一点(MVC根本无视列表注释和验证在GuestResponse类注释):
[EnsureOneElementAttribute(ErrorMessage = "At least a person is required")]
public IList<GuestResponse> GuestResponses { get; set;}
结果:
http://postimage.org/image/b2jn7ta69/