代码之家  ›  专栏  ›  技术社区  ›  Robin Maben

用资源文件中的元数据装饰模型字段

  •  0
  • Robin Maben  · 技术社区  · 14 年前
    • 我想把我的属性装饰(每个字段3-4个)放在其他地方,这样我的代码看起来是可读的。
    • 此外,传递给某些属性的参数应该来自资源文件。 如: [Required("Cannot proceed without entering *field_Name*")] 我只需要 [Required]

    这个问题的可能重复(对此我忍不住提出悬赏): Default resource for data annotations .

    2 回复  |  直到 8 年前
        1
  •  2
  •   Community CDub    8 年前

    对于第一个问题,也许你可以尝试使用 Fluent Validation . 您可以通过以下方式将其连接到MVC these instructions .

    对于第二个问题,我在这里发布了一个答案: Default resource for data annotations in ASP.NET MVC

        2
  •  3
  •   Community CDub    8 年前

    为了回答你的第一个问题,你可以使用伙伴类。例如,如果您有一个“User”模型,那么您可以创建一个“UserMetadata”buddy类。然后可以将属性添加到buddy类而不是主类中的属性。NET MVC完全支持此功能,并将使用buddy类进行验证和显示名称等操作。以下是您如何声明好友类:

    [MetadataType(typeof(UserMetadata))]
    public class User
    {
        public string Name { get; set; }
    }
    
    public class UserMetadata
    {
    
        [Required]
        public object Name { get; set; }
    
    }
    

    注意,buddy类中的属性类型始终可以是“object”,因为MVC不查看buddy类中的属性类型。

    还要注意,MetadataTypeAttribute可以在System.ComponentModel.DataAnnotations命名空间中找到。

    关于第二个问题,你可以看看我在这里发布的答案: Default resource for data annotations in ASP.NET MVC