none
ASP.NET MVC + NHibernate.Validator + xVal RRS feed

  • Pergunta

  • Olá pessoal,

    Alguem já utilizou está combinação para validação ?
    Só com o ASP.NET MVC e o NHibernate.Validator deu certo aqui, fez o summary bonitinho, agora eu queria utilizar o jquery.validator para enfeitar os inputs, ai achei este framework xVal, mas não estou conseguindo fazer a validação em sim, alguem teria um exemplo ??

    Obrigado

    Att.
    Leonardo Lima
    • Editado C. Augusto Proiete [MVP]Moderator quinta-feira, 11 de fevereiro de 2010 23:46 Ao abrir um tópico você já indica se trata-se de uma dúvida ou discussão. Não há a necessidade de colocar um "prefixo" no título.
    quinta-feira, 11 de fevereiro de 2010 16:52

Respostas

  • Fala Leonardo,

    Eu já fiz com ASP.NET MVC + Castle Validator + xVal
    Imagino que seja bem parecido, acho até que o xVal já tem um IRulesProvider (interface usada para "converter" as regras definidos pelos atributos em regras para o jquery validator) para o NHibernate...

    Você já deu uma olhada nesse exemplo ? Ele mostra como fazer com DataAnnotations, mas acho que você consegue adaptar pro NHibernate Validator...


    Forte abraço,

    André Borges Medeiros
    MCT, MCPD, MCTS

    >> Se a resposta solucionar sua dúvida, favor Votar como Útil
    quinta-feira, 11 de fevereiro de 2010 19:12
    Moderador
  • Opa André,

    Já vi este exemplo sim, então acabei tendo de atualizar o xVal compilando o código, achei uma implementação do IRulesProvider para utilizar com o NHibernate.Validator 1.2, depois tive de fazer uma pequena alteração na minha função de validar e acabou ficando assim:

    namespace Site.Ext
    {
        public static class ValidationExtension
        {
            public static void Validate(this Controller controller, object Entity)
            {
                ValidatorEngine vtor = Environment.SharedEngineProvider.GetEngine();
                InvalidValue[] errors = vtor.Validate(Entity);
    
                List<ErrorInfo> errorInfoList = new List<ErrorInfo>();
                foreach (InvalidValue error in errors)
                {
                    errorInfoList.Add(new ErrorInfo(error.PropertyName, error.Message));
                }
    
                if (errorInfoList.Count != 0)
                {
                    throw new RulesException(errorInfoList);
                }
            }
        }
    }
    Que achou da solução tem como melhorar ?

    Obrigado

    Att.
    Leonardo Lima
    quinta-feira, 11 de fevereiro de 2010 19:31

Todas as Respostas

  • Fala Leonardo,

    Eu já fiz com ASP.NET MVC + Castle Validator + xVal
    Imagino que seja bem parecido, acho até que o xVal já tem um IRulesProvider (interface usada para "converter" as regras definidos pelos atributos em regras para o jquery validator) para o NHibernate...

    Você já deu uma olhada nesse exemplo ? Ele mostra como fazer com DataAnnotations, mas acho que você consegue adaptar pro NHibernate Validator...


    Forte abraço,

    André Borges Medeiros
    MCT, MCPD, MCTS

    >> Se a resposta solucionar sua dúvida, favor Votar como Útil
    quinta-feira, 11 de fevereiro de 2010 19:12
    Moderador
  • Opa André,

    Já vi este exemplo sim, então acabei tendo de atualizar o xVal compilando o código, achei uma implementação do IRulesProvider para utilizar com o NHibernate.Validator 1.2, depois tive de fazer uma pequena alteração na minha função de validar e acabou ficando assim:

    namespace Site.Ext
    {
        public static class ValidationExtension
        {
            public static void Validate(this Controller controller, object Entity)
            {
                ValidatorEngine vtor = Environment.SharedEngineProvider.GetEngine();
                InvalidValue[] errors = vtor.Validate(Entity);
    
                List<ErrorInfo> errorInfoList = new List<ErrorInfo>();
                foreach (InvalidValue error in errors)
                {
                    errorInfoList.Add(new ErrorInfo(error.PropertyName, error.Message));
                }
    
                if (errorInfoList.Count != 0)
                {
                    throw new RulesException(errorInfoList);
                }
            }
        }
    }
    Que achou da solução tem como melhorar ?

    Obrigado

    Att.
    Leonardo Lima
    quinta-feira, 11 de fevereiro de 2010 19:31