【问题标题】:MVC - is there a way to declare multiple properties in a model with the same attributes, different namesMVC - 有没有办法在模型中声明具有相同属性、不同名称的多个属性
【发布时间】:2013-03-14 06:54:46
【问题描述】:

我需要声明一个模型的许多属性,它们都具有相同的属性。我想知道在 MVC 中是否有任何方法可以做到这一点。

[Required]
[Range(0, 4, ErrorMessage = "Integrity is required.")]
public int Integrity { get; set; }

[Required]
[Range(0, 4, ErrorMessage = "Empathy is required.")]
public int Empathy { get; set; }

我有一堆使用这两个属性(必需和范围)的字段,唯一不同的是属性的名称。有什么方法可以以更少重复的方式声明这些?

【问题讨论】:

  • 您可以使用 ValidationAttribute 类创建自定义属性并覆盖其 IsValid() 方法。在这里你可以为它编写所有需要的逻辑。

标签: c# asp.net-mvc


【解决方案1】:

没有任何内置功能可以满足您的要求,但是您可以使用 ModelValidatorProviders 实现此功能。您必须创建自己的提供程序并将其传递给 MVC。 创建您自己的属性,该属性将接受注释类型以及应该应用它的属性数组。然后您可以相应地在该属性中编写所需的逻辑。 看看这个链接,它肯定会给你提示如何完成这个。

CustomModelValidatorProvider

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多