【问题标题】:How to perform complex validation on a model object?如何对模型对象执行复杂的验证?
【发布时间】:2012-02-07 22:38:02
【问题描述】:

我的项目在 ASP.NET MVC 3 中。在我的域中,我有一个由实体框架定义的模型对象。为了验证属性,我只需扩展生成的 EF 对象并添加一个包含所有验证属性的元数据类。

[MetadataType(typeof(ContactInformationMetaData))]
public partial class ContactInformation
{

}

public class ContactInformationMetaData
{
    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }

    public string Phone { get; set; }

    [EmailValidator]
    public string Email { get; set; }
}

这在大多数情况下都很有效,但现在我有一个更复杂的场景。我不希望电话和电子邮件属性是必需的,但我希望它们中的一个是必需的。换句话说,我想要求设置电子邮件或电话或两者都设置,但不能没有。

我将如何执行这样的复杂验证?如果我创建一个自定义验证属性,我会将它放在哪里以及如何工作?

【问题讨论】:

    标签: asp.net asp.net-mvc entity-framework validation entity-framework-4


    【解决方案1】:

    这是另一个正是类似的问题(即使电话和电子邮件示例也是相同的): Model Validation / ASP.NET MVC 3 - Conditional Required Attribute

    【讨论】:

    • 对不起。我显然看过搜索结果。
    【解决方案2】:

    查看 FluentValidation:

    http://fluentvalidation.codeplex.com/wikipage?title=mvc

    您可以轻松创建这种类型的自定义验证,总的来说,这是一个非常酷的验证框架

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多