none
Problema no formato da data recebida no controller RRS feed

  • Pergunta

  • Boa noite,

    Estou tempo problemas ao usar um campo de edição na pagina definido no modelo como datatype.date. Na pagina ao seleciona a data no calendário do campo, aparece no formato esperado:

    mas no controle estou recebendo da seguinte forma:

    ja pesquisei bastante e apliquei sugestões dadas no http://stackoverflow.com para fazer formatação no dataannotations, como fiz, de varias formas:

    //[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            [DataType(DataType.Date)]
            [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
            [Required(ErrorMessage = "A data de expiração é obrigatório", AllowEmptyStrings = false)]
            [Display(Name = "Data de expiração")]
            public string DataExpiracao { get; set; }

    esta é a declaração do campo no modelo, mas em nenhuma forma, foi alterado a forma que estou recebendo no controller, alguém pode me da uma luz porque não esta funcionando pelo dataannotations, conforme deveria?

    Uma das formas que encontrei é fazer na mão desta forma:

    public ActionResult Cadastrar(MuralAvisoViewModel objMural)
            {
                Pessoa usuarioLogado = repositoryUsuario.BuscarUsuarioLogado();
                ViewBag.Usuario = usuarioLogado;
    
                var dia = Convert.ToDateTime(objMural.DataExpiracao).Day;
                var mes = Convert.ToDateTime(objMural.DataExpiracao).Month;
                var ano = Convert.ToDateTime(objMural.DataExpiracao).Year;
    

    mas não gostaria de deixar assim, porque pelo que li, deveria funcionar pelo dataannotations..

    Obrigado!


    Atenciosamente, Ezequiel S. Daniel

    sexta-feira, 29 de novembro de 2013 23:05

Respostas

  • Ezequiel:

    Erro de Planejamento:

    Porque DataExpiração ta como String ??? ele não vai reconhecer isso como DateTime no Controler !!!

    O erro ta na classe!

    coloque DateTime DataExpiracao, OK!


    Fulvio Cezar Canducci Dias

    sábado, 30 de novembro de 2013 12:16

Todas as Respostas

  • Ezequiel:

    Erro de Planejamento:

    Porque DataExpiração ta como String ??? ele não vai reconhecer isso como DateTime no Controler !!!

    O erro ta na classe!

    coloque DateTime DataExpiracao, OK!


    Fulvio Cezar Canducci Dias

    sábado, 30 de novembro de 2013 12:16
  • É porque gostaria de pegar apenas a data, para apresentar no grid, se fosse campo do tipo datetime ao listar ele traz a hora também, mas este é o caminho mesmo, eu mudei para datetime e fiz uma outra solução para contornar a necessidade do grid, assim a data é gravada certo, obrigado!

    Atenciosamente, Ezequiel S. Daniel

    domingo, 1 de dezembro de 2013 01:51