使用数据注释进行模型验证的错误消息

2024-03-11

给定以下课程:

using System.ComponentModel.DataAnnotations;

public class Book{
   public Contact PrimaryContact{get; set;}
   public Contact SecondaryContact{get; set;}

   [Required(ErrorMessage="Book name is required")]
   public string Name{get; set;}
}
public class Contact{
    [Required(ErrorMessage="Name is required")]
    public string Name{get; set;}
}

有没有一种干净的方法可以为每个实例提供不同的错误消息Contact in Book using DataAnnotations?例如,如果名称中缺少PrimaryContact例如,错误将显示“需要主要联系人姓名”。

我当前的解决方案是创建一个验证服务,检查模型状态中的字段错误,然后删除所述错误并使用我想要的特定语言将它们添加回来。


这是我所知道的唯一方法,但它远非干净。它涉及使用子类化和元数据类来“覆盖”错误消息。

public class Book
{
    public PrimaryContact PrimaryContact { get; set; }
    public SecondaryContact SecondaryContact { get; set; }

    [Required(ErrorMessage = "Book name is required")]
    public string Name { get; set; }
}

public class Contact
{
    [Required(ErrorMessage = "Name is required")]
    public string Name { get; set; }
}

[MetadataType(typeof(PrimaryContactMD))]
public class PrimaryContact : Contact
{
    class PrimaryContactMD
    {
        [Required(ErrorMessage = "Primary Contact Name is required")]
        public string Name { get; set; }
    }
}

[MetadataType(typeof(SecondaryContactMD))]
public class SecondaryContact : Contact
{
    class SecondaryContactMD
    {
        [Required(ErrorMessage = "Secondary Contact Name is required")]
        public string Name { get; set; }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用数据注释进行模型验证的错误消息 的相关文章

随机推荐