c# asp.net web api中的模型验证日期格式

Sam*_*Sam 1 c# asp.net-web-api asp.net-web-api2

我正在使用模型映射 web api Get 请求复杂类型输入参数,我想验证模型中输入类型的日期格式。

我输入的uri如下 http://localhost:xxxx/api/games/?id=5&date=2018-01-17

在我的游戏控制器中

public IHttpActionResult Get([FromUri]Gamedata) {

 if (ModelState.IsValid) {
 }
 else {

 }
}
Run Code Online (Sandbox Code Playgroud)

在我的模型课上

public class Game
    {
        [Required]
        public int? Id { get; set; }

        [Required]
        public string date { get; set; } // Validate the date format "YYYY-MM-DD"


}
Run Code Online (Sandbox Code Playgroud)

我想验证日期格式“YYY-MM-DD”。如何实现?我正在阅读这个。但是不知道要使用哪个注解?

Ehs*_*zir 5

你可以这样做

 [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
Run Code Online (Sandbox Code Playgroud)

在你的模型中

    public class Game
    {
        [Required]
        public int? Id { get; set; }

        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
        public DateTime date { get; set; } // Validate the date format "YYYY-MM-DD"
     }
Run Code Online (Sandbox Code Playgroud)

也可以看看DateTime.GetDateTimeFormats Method()