asp.net-mvc-3 – 模型验证/ ASP.NET MVC 3 – 条件必需属性

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 模型验证/ ASP.NET MVC 3 – 条件必需属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的ASP.NET MVC 3应用程序遇到麻烦。我有两个属性在我的模型,我只想要其中一个需要在我看来,基于任何一个是空的。所以例如,如果我输入一个电话号码,那么不再需要电子邮件,反之亦然,但如果我同时留下两个空格,那么需要1个,下面是我的模型:
[Display(Name = "Contact Phone Number:")]
[MaxLength(150)]
public string ContactPhoneNumber { get; set; }

[Display(Name = "Contact Email Address:")]
[MaxLength(100)]
public string ContactEmailAddress { get; set; }

我需要创建一个自定义属性来验证我的模型,如果是,我该如何实现?

解决方法

您可以在类上实现IValidatableObject,并提供实现自定义逻辑的Validate()方法。如果您希望确保提供该逻辑,则将其与客户端上的自定义验证逻辑相结合。我发现这比实现一个属性更容易。
public class ContactModel : IValidatableObject
{
   ...

   public IEnumerable<ValidationResult> Validate( ValidationContext context )
   {
        if (string.IsNullOrWhitespace( ContactPhoneNumber ) 
            && string.IsNullOrWhitespace( ContactEmailAddress ))
        {
             yield return new ValidationResult( "Contact Phone Number or Email Address must be supplied.",new [] { "ContactPhoneNumber","ContactEmailAddress" } );
        }
   }
}

要使客户端的所有工作都可以,您需要将以下脚本添加到您的视图中:

<script type="text/javascript">
$(function() {
    $('form').validate(); 
    $('form').rules('add',{ 
        "ContactPhoneNumber": { 
            depends: function(el) { return !$('#ContactEmailAddress').val(); } 
        } 
    });
});
</script>
原文链接:https://www.f2er.com/aspnet/253319.html

猜你在找的asp.Net相关文章