C# MVC3自定义验证
我有一个有财产的模型C# MVC3自定义验证,c#,.net,asp.net-mvc,asp.net-mvc-3,C#,.net,Asp.net Mvc,Asp.net Mvc 3,我有一个有财产的模型 [Display(Name = "Phone")] public List<Phone> PhoneNumbers { get; set; } [Display(Name=“Phone”)] 公共列表电话号码{get;set;} 我想验证列表是否应大于0 告诉我密码 /// <summary> /// Atleast one phone number is required /// </summary> public
[Display(Name = "Phone")]
public List<Phone> PhoneNumbers { get; set; }
[Display(Name=“Phone”)]
公共列表电话号码{get;set;}
我想验证列表是否应大于0
告诉我密码
/// <summary>
/// Atleast one phone number is required
/// </summary>
public sealed class DemographicPhoneNumberRequiredCheck : ValidationAttribute
{
public override bool IsValid(object value)
{
???????
}
}
//
///至少需要一个电话号码
///
公共密封类人口统计PhoneNumber Required检查:ValidationAttribute
{
公共覆盖布尔值有效(对象值)
{
???????
}
}
谢谢。您可以使用
Count
或Any
:
public override bool IsValid(object value)
{
var PhoneNumbers = value as List<Phone>;
if (PhoneNumbers != null)
{
return PhoneNumbers.Count() > 0;
}
return false;
}
public override bool有效(对象值)
{
var PhoneNumbers=列表中的值;
if(电话号码!=null)
{
返回PhoneNumber.Count()>0;
}
返回false;
}
或:
public override bool有效(对象值)
{
var PhoneNumbers=列表中的值;
if(电话号码!=null)
{
返回phonenumber.Any();
}
}
实际上,您的方法中有值:
public override bool IsValid(object value)
{
var phoneNumbers = value as List<Phone>;
if(phoneNumbers != null)
{
// perform the validation
}
}
public override bool有效(对象值)
{
var phoneNumbers=列表中的值;
if(电话号码!=null)
{
//执行验证
}
}
比我快。很好,很简单:)我不知道他怎么能直接在验证属性中获取电话号码。你没有错过一些吗?除非我错过了一些非常简单的东西,否则这是不会编译的<代码>电话号码在属性实现中不可用。只需将对象“值”强制转换为列表
public override bool IsValid(object value)
{
var phoneNumbers = value as List<Phone>;
if(phoneNumbers != null)
{
// perform the validation
}
}