Validate date in editfor

0

I made a date mask and would like to know how I validate the date right there, ie, in the edit it does not accept data type: 23/16/9087 . This is my date editfor

<div class="form-group">
        @Html.LabelFor(model => model.dataNascimento, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.dataNascimento, new { htmlAttributes = new { @class = "form-control", @id = "nascimento" } })
            @Html.ValidationMessageFor(model => model.dataNascimento, "", new { @class = "text-danger" })
        </div>
    </div>

In the model I display a date obligatory message (if it is empty), but if it is an invalid date it does happen anyway and I do not want to play this rule for the bank.

How do I validate?

public class Funcionario
    {
        [Key]
        public int id { get; set; }
        [Required(ErrorMessage ="Nome do funcionário é obrigatório", AllowEmptyStrings =false)]
        [Display(Name ="Nome")]
        public String nome { get; set; }
        [Required(ErrorMessage = "Data de Nascimento do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "Data de Nascimento")]
        public String dataNascimento { get; set; }
        [Required(ErrorMessage = "CPF do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "CPF")]
        public String cpf { get; set; }
        [Display(Name ="Nome da Cidade")]
        public String NomeCidade { get; set; } 
        [Required(ErrorMessage = "Cidade do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "Cidade")]
        public virtual int cidade { get; set; }
    }
    
asked by anonymous 10.08.2018 / 23:06

1 answer

1

Use the System.ComponentModel.DataAnnotations.RangeAttribute attribute.

Example:

[Range(typeof(DataTime), "01/01/2001", "01/01/2020", ErrorMessage = "Data Inválida")]
public DateTime Data { get; set; }
    
13.08.2018 / 14:05