使用 DataType 特性应用于 Date 和 Price 属性

[Display(Name = "Release Date")] 
[DataType(DataType.Date)] 
public DateTime ReleaseDate 
{
  get;
  set;
}
[Range(1, 100)] 
[DataType(DataType.Currency)] 
Column(TypeName = "decimal(18, 2)")] 
public decimal Price 
{
  get;
  set;
}
使用 [RegularExpression] 特性验证数据的格式。 [DataType] 属性用于指定比数据库内部类型更具体的数据类
型。 [DataType] 特性不是验证特性。 示例应用程序中仅显示日期,不显示时间。
DataType 枚举提供多种数据类型,如 Date 、 Time 、 PhoneNumber 、 Currency 、 EmailAddress 等。
DataType.Date 不指定显示日期的格式。 默认情况下,数据字段根据基于服务器的 CultureInfo 的默认格式进行
显示。
[DisplayFormat] 特性用于显式指定日期格式:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 

public DateTime ReleaseDate { get; set; }
可单独使用 [DisplayFormat] 特性,但通常建议使用 [DataType] 特性。 [DataType] 特性按照数据在屏幕上的呈现方式传达数据的语义。 [DataType] 特性可提供 [DisplayFormat] 所不具有的以下优点:
浏览器可启用 HTML5 功能(例如显示日历控件、区域设置适用的货币符号、电子邮件链接等)。
默认情况下,浏览器将根据区域设置采用正确的格式呈现数据。
借助 [DataType] 特性,ASP.NET Core 框架可选择适当的字段模板来呈现数据。 单独使用时, DisplayFormat特性将使用字符串模板。
 

 

 

 

 

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace RazorPagesMovie.Models 
{
    public class Movie 
    {
        public int ID { get;
        set;
    }
    [StringLength(60, MinimumLength = 3)] public string Title 
    {
        get;
        set;
    }
    = string.Empty;
    [Display(Name = "Release Date"), DataType(DataType.Date)] public DateTime ReleaseDate 
    {
        get;
        set;
    }
    [RegularExpression(@"^[A-Z]+[a-zA-Zs]*$"), Required, StringLength(30)] public string Genre 
    {
        get;
        set;
    }
    = string.Empty;
    [Range(1, 100), DataType(DataType.Currency)] [Column(TypeName = "decimal(18, 2)")] public decimal Price 
    {
        get;
        set;
    }
    [RegularExpression(@"^[A-Z]+[a-zA-Z0-9""'s-]*$"), StringLength(5)] public string Rating 
    {
        get;
        set;
    }
    = string.Empty;
}
}

 

 
posted @ 2022-07-01 14:16  Tammytan  阅读(303)  评论(0编辑  收藏  举报