📜  ASP.NET MVC-数据注释(1)

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

ASP.NET MVC-数据注释

简介

在 ASP.NET MVC 中,数据注释(Data Annotations)是一个用于验证和其他数据方面的元数据的机制,能够使开发者使用属性注释来定义模型上的验证规则、UI提示信息、数据格式化等等。数据注释可以作用于控制器中的任何类,如实体类、视图模型等等。

常用的数据注释
RequiredAttribute

RequiredAttribute 用于验证一个属性是否为必须的,该属性不能为 null。

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

RangeAttribute 用于验证一个属性的值是否在一定的范围内。

[Range(1, 100, ErrorMessage = "Value for {0} must be between {1} and {2}.")]
public int Age { get; set; }
RegularExpressionAttribute

RegularExpressionAttribute 用于验证一个属性是否符合指定的正则表达式。

[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", ErrorMessage = "Characters are not allowed.")]
public string FirstName { get; set; }
DataTypeAttribute

DataTypeAttribute 用于指定一个属性的数据类型。

[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; }
DisplayAttribute

DisplayAttribute 可以用于指定属性或字段的显示名称。

[Display(Name = "Full Name")]
public string FullName { get; set; }
使用数据注释

在 ASP.NET MVC 中,使用数据注释必须先在模型上定义属性。

public class Person
{
    [Required(ErrorMessage = "Name is required.")]
    [Display(Name = "Full Name")]
    public string Name { get; set; }

    [Range(1, 100, ErrorMessage = "Value for {0} must be between {1} and {2}.")]
    public int Age { get; set; }

    [RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", ErrorMessage = "Characters are not allowed.")]
    public string FirstName { get; set; }

    [DataType(DataType.Date)]
    public DateTime DateOfBirth { get; set; }
}

在视图中,可以使用 HtmlHelper 扩展方法来设置和渲染输入元素和错误消息。

@model Person

@using (Html.BeginForm())
{
    @Html.LabelFor(m => m.Name)
    @Html.TextBoxFor(m => m.Name)
    @Html.ValidationMessageFor(m => m.Name)

    @Html.LabelFor(m => m.Age)
    @Html.TextBoxFor(m => m.Age)
    @Html.ValidationMessageFor(m => m.Age)

    @Html.LabelFor(m => m.FirstName)
    @Html.TextBoxFor(m => m.FirstName)
    @Html.ValidationMessageFor(m => m.FirstName)

    @Html.LabelFor(m => m.DateOfBirth)
    @Html.TextBoxFor(m => m.DateOfBirth)
    @Html.ValidationMessageFor(m => m.DateOfBirth)

    <input type="submit" value="Save"/>
}
总结

数据注释是一个非常方便的机制,可以简化开发者的工作,并提高应用程序的健壮性和可维护性。ASP.NET MVC 中预定义了许多常用的数据注释,可以大大简化数据验证和元数据的处理。开发者还可以自己定义自己的数据注释,来满足特定的需求。