asp.net-mvc - 对 2 个字段进行 asp.net mvc 验证 - 如果输入其他字段,则必须存在一个

标签 asp.net-mvc asp.net-mvc-3 validation

我的 View 模型中有 2 个文本字段,text1 和 text2。我需要验证是否输入了 text1,然后必须输入 text2,反之亦然。在 View 模型的自定义验证中如何实现这一点?

谢谢。

最佳答案

您可以使用实现 IValidatableObject(来自 System.ComponentModel.DataAnnotations 命名空间)在您的 View 模型上进行服务器端验证:

public class AClass : IValidatableObject 
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string SecondName { get; set; }
        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if( (!string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(SecondName)) || (string.IsNullOrEmpty(Name) && !string.IsNullOrEmpty(SecondName)) )
                yield return new ValidationResult("Name and Second Name should be either filled, or null",new[] {"Name","SecondName"});
        }
    }

现在确定Name和SecondName是否都设置了,或者为null,则模型有效,否则无效。

关于asp.net-mvc - 对 2 个字段进行 asp.net mvc 验证 - 如果输入其他字段,则必须存在一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371550/

相关文章:

javascript - JQuery Draggable 方法在局部 View 中不可用

asp.net - 无法在 TeamCity 中构建 .Net MVC 项目

asp.net-mvc - 如何让 ASP.NET MVC Action 返回不同的格式?

c# - AllowHtml 属性不起作用

python - 使包含 HTML 的表单输入无效

php - 在 mvc php 中验证

ASP.NET AJAX 验证控件

asp.net-mvc - 使用 MVC,如何根据复选框显示或隐藏元素?

asp.net-mvc - ASP.NET MVC3 - 3 Tier design - 事务控制和业务层设计问题

asp.net-mvc-3 - .NET MVC 3 中的 jQuery 非侵入式验证 - 显示成功复选标记