📅  最后修改于: 2023-12-03 15:29:30.340000             🧑  作者: Mango
在 ASP.NET MVC 中,数据注释(Data Annotations)是一个用于验证和其他数据方面的元数据的机制,能够使开发者使用属性注释来定义模型上的验证规则、UI提示信息、数据格式化等等。数据注释可以作用于控制器中的任何类,如实体类、视图模型等等。
RequiredAttribute 用于验证一个属性是否为必须的,该属性不能为 null。
[Required(ErrorMessage = "Name is required.")]
public string Name { get; set; }
RangeAttribute 用于验证一个属性的值是否在一定的范围内。
[Range(1, 100, ErrorMessage = "Value for {0} must be between {1} and {2}.")]
public int Age { get; set; }
RegularExpressionAttribute 用于验证一个属性是否符合指定的正则表达式。
[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", ErrorMessage = "Characters are not allowed.")]
public string FirstName { get; set; }
DataTypeAttribute 用于指定一个属性的数据类型。
[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; }
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 中预定义了许多常用的数据注释,可以大大简化数据验证和元数据的处理。开发者还可以自己定义自己的数据注释,来满足特定的需求。