none
Formado de data na validação data annotation - host EUA RRS feed

  • Pergunta

  • Olá

    Testei minha aplicação localmente e show, coloquei um IIS local e direcionei no roteador e show.  Na hora de por numa hospedagem baratinha que achei nos EUA (https://www.smarterasp.net/) tudo está funcionando bem porém logo de cara a validação já acusa problema na DATA (por causa de dd/mm/yyyy).

     Também tem hora que o valor 15.000,00 ele não valida como correto. 

    A data por exemplo ele informa:

    The value '25/05/2013' is not valid for DataInicial.

    No WebConfig fiz assim:

    <system.Web>
            <httpRuntime targetFramework="4.5"/>
      <globalization culture="pt-BR" uiCulture="pt-BR" />
          </system.Web>

     

    O que mais posso fazer?  Local e no IIS local está certo, no host que é americano ta dando sempre isso.

     

    Obrigado

    sábado, 25 de maio de 2013 22:28

Respostas

Todas as Respostas

  • Romulo,

    Já tive este problema, no meu caso, a solução foi criar implementar uma sobrecarga dessa validação e na implementação especificar a cultura PT-br.


    Fábio Alencar - MCP, MS e MCSD

    segunda-feira, 27 de maio de 2013 20:03
  • Olá.

    Estranhamente começou a funcionar... mas agradeço sua ajuda.

    Mas daí tive outra coisa.  Como o banco de dados ta nos EUA a hora lançada nos registros que joguei DateTime.Now ficaram com 4 horas a menos que nosso horário (GMT -3).

    Achei que esse culture iria resolver mas me enganei.  Tive que criar uma função static para ele, antes de gravar no banco via EF, acertar a data do lançamento.  Por enquanto resolveu perfeitamente.

    Será este o melhor jeito mesmo?

    A função ficou assim:

    public static DateTime AcertarHoraGMT()
            {
                return AcertarHoraGMT(DateTime.Now);
            }
    
            public static DateTime AcertarHoraGMT(DateTime pData)
            {   
                if(System.Configuration.ConfigurationManager.AppSettings["HoraAjusteGMT"] == null)
                    return pData;
    
                double Tempo = double.Parse(System.Configuration.ConfigurationManager.AppSettings["HoraAjusteGMT"]);
                return pData.AddHours(Tempo);
            }

    Vlw!
    segunda-feira, 27 de maio de 2013 22:26
  • Olá Romulo,

    Dessa forma como você está implementando é melhor você usar o DateTime.UtcNow.

    Informações sobre o DateTime.UtcNow:

    http://msdn.microsoft.com/pt-br/library/system.datetime.utcnow.aspx

    Usando o DateTime.Now se o servidor for reconfigurado para outro idioma você vai passar de novo pelo mesmo problema.


    Fábio Alencar - MCP, MS e MCSD

    terça-feira, 4 de junho de 2013 12:37