📜  asp.net core 中的数据注释 - C# (1)

📅  最后修改于: 2023-12-03 15:29:29.847000             🧑  作者: Mango

ASP.NET Core中的数据注释

在ASP.NET Core中,数据注释是一种帮助我们更好地理解数据模型的方法。它们提供了有关模型中属性的元数据,例如属性的名称、数据类型、最大值、最小值等。它们还可以用于验证输入,并在模型绑定期间生成错误消息。

数据注释的类型

在ASP.NET Core中,有两种类型的数据注释:属性注释和模型注释。

  1. 属性注释用于提供有关实体类中的单个属性的元数据。它们通常作为属性声明的一部分使用,例如以下示例:
public class Person
{
    [Required]
    public string Name { get; set; }
    public int Age { get; set; }
}

在此示例中,[Required]属性注释指示Name属性为必填项。

  1. 模型注释用于提供有关整个实体类的属性的元数据。它们通常作为类声明的一部分使用,例如以下示例:
[DisplayName("Employee Information")]
public class Employee
{
    public int Id { get; set; }

    [Required]
    [DisplayName("Employee Name")]
    public string Name { get; set; }

    [Range(0, 120)]
    public int Age { get; set; }
}

在此示例中,[DisplayName("Employee Information")]模型注释指示Employee类的显示名称为“Employee Information”。[DisplayName("Employee Name")]属性注释指示Name属性的显示名称为“Employee Name”。

常用属性注释

以下是ASP.NET Core中常用的属性注释:

  1. [StringLength]:指定字符串属性的最小和最大长度。
  2. [Range]:指定数字属性的最小和最大值。
  3. [Required]:指示属性为必填项。
  4. [RegularExpression]:指定属性的值必须与指定的正则表达式匹配。
  5. [DisplayName]:指定属性或模型的显示名称。
  6. [DisplayFormat]:指定属性或模型的显示格式。
  7. [DataType]:指定属性或模型的数据类型。
自定义属性注释

除了使用内置的属性注释之外,您还可以创建自己的自定义属性注释。以下是一个示例:

[AttributeUsage(AttributeTargets.Property)]
public class CustomAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        // validate value here
        return true;
    }
}

在此示例中,我们创建了一个名为CustomAttribute的自定义属性注释,并继承了ValidationAttribute类。我们重写了IsValid方法,以执行自定义的验证逻辑。

然后,我们可以将此自定义属性注释应用于属性声明:

public class Person
{
    [Custom]
    public string Name { get; set; }
    public int Age { get; set; }
}
模型绑定期间的数据注释

在ASP.NET Core中,模型绑定期间会使用数据注释来验证和转换用户输入。如果用户输入的数据无法通过验证,模型绑定过程将生成错误消息,并返回到视图中显示。

以下示例演示了如何在控制器中使用模型注释:

[HttpPost]
public IActionResult Create(Employee employee)
{
    if (ModelState.IsValid)
    {
        // add employee to database
        return RedirectToAction("Index");
    }
    return View(employee);
}

在此示例中,当用户提交表单时,模型绑定期间将使用数据注释来验证Employee对象。如果模型无效,则将View(employee)返回到视图中显示错误消息。否则,将Employee对象添加到数据库中,并重定向到“Index”操作。

总结

ASP.NET Core中的数据注释提供了有关数据模型属性的元数据,并用于验证用户输入。本文介绍了属性注释、模型注释和常用的属性注释类型。此外,我们还了解了如何创建自定义属性注释,并在模型绑定期间使用数据注释。