none
Como usar 2 "Remote Validations" para uma propriedade? É possível? RRS feed

  • Pergunta

  • Olá, bom dia a todos.

    Pessoal, gostaria de saber se é possível usar duas validações [Remote] para uma única propriedade?

    Eu preciso aplicar duas regras de validações diferentes para uma mesma propriedade, mas aparentemente esta me retornando que o "Remote" esta duplicado. Como contornar isso?

    A minha sintaxe está parecido com isto:

    [Remote("PrimeiraValidacao", "User", ErrorMessage = "Mensagem de erro 1!")]
    [Remote("SegundaValidacao", "User", ErrorMessage = "Mensagem de erro 2!")]
    public string Nome{ get; set; }

    Alguém poderia me ajudar?

    terça-feira, 10 de setembro de 2013 13:23

Respostas

  • Faça Assim:

    var respostaNegativa = string.Empty;
                if (Nome.Length > 3)
                {
                    if (Nome.Contains("000"))
                    {
                        return Json(true, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        respostaNegativa = "Não contém 000";
                    }
                }
                else
                {
                    respostaNegativa = "Número de caracteres inválidos";
                }
                return Json(respostaNegativa, JsonRequestBehavior.AllowGet);

    Ou seja, é só retornar diferente de true dentro do json que mensagem será carregada!

    Se sim crédito a mim os pontos, sem mais obrigado!


    Fúlvio Cezar Canducci Dias

    • Marcado como Resposta Jones Santos terça-feira, 10 de setembro de 2013 22:05
    terça-feira, 10 de setembro de 2013 20:01

Todas as Respostas

  • Olá, bom dia a todos.

    Pessoal, gostaria de saber se é possível usar duas validações [Remote] para uma única propriedade?

    Eu preciso aplicar duas regras de validações diferentes para uma mesma propriedade, mas aparentemente esta me retornando que o "Remote" esta duplicado. Como contornar isso?

    A minha sintaxe está parecido com isto:

    [Remote("PrimeiraValidacao", "User", ErrorMessage = "Mensagem de erro 1!")]
    [Remote("SegundaValidacao", "User", ErrorMessage = "Mensagem de erro 2!")]
    public string Nome{ get; set; }

    Alguém poderia me ajudar?

    Escolha uma das validações e coloque o código ordenada das duas !!! não precisa contornar só precisa fazer um metodo que una os dois teste como dito coordenado!!!

    Fúlvio Cezar Canducci Dias

    terça-feira, 10 de setembro de 2013 13:47
  • Como Assim Fúlvio, desculpe mas não entendi.

    Teria como me dar um exemplo simples?

    Obrigado.

    terça-feira, 10 de setembro de 2013 14:08
  • Como Assim Fúlvio, desculpe mas não entendi.

    Teria como me dar um exemplo simples?

    Obrigado.

    [Required]
    public Int32 Id { get; set; }
    
    [Required]
    [Remote("GetName","Carro")]
    public string Nome { get; set; }

    public ActionResult GetName(string Nome, int? id)
            {
                if (Nome.Length > 3)
                {
                    if (Nome.Contains("000"))
                    {
                        return Json(true, JsonRequestBehavior.AllowGet);
                    }
                }
                return Json(false, JsonRequestBehavior.AllowGet);
            }

    ou seja coloque numa mesma metodo de retorno duas obrigações: um ser maior que 3 caracteres e ter entre eles 3 zeros! se não ele nem entra e dá um false e anula a validação obrigando ter!

    Fúlvio Cezar Canducci Dias

    terça-feira, 10 de setembro de 2013 14:55
  • Obrigado Fúlvio, entendi seu exemplo, mas tenho uma dúvida, neste caso eu teria apenas uma mensagem de retorno de validação... ou eu conseguiria manipular qual mensagem de error retornar conforme a validação feita?

    terça-feira, 10 de setembro de 2013 15:03
  • Faça Assim:

    var respostaNegativa = string.Empty;
                if (Nome.Length > 3)
                {
                    if (Nome.Contains("000"))
                    {
                        return Json(true, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        respostaNegativa = "Não contém 000";
                    }
                }
                else
                {
                    respostaNegativa = "Número de caracteres inválidos";
                }
                return Json(respostaNegativa, JsonRequestBehavior.AllowGet);

    Ou seja, é só retornar diferente de true dentro do json que mensagem será carregada!

    Se sim crédito a mim os pontos, sem mais obrigado!


    Fúlvio Cezar Canducci Dias

    • Marcado como Resposta Jones Santos terça-feira, 10 de setembro de 2013 22:05
    terça-feira, 10 de setembro de 2013 20:01
  • Valew mano! Sua sugestão foi correta. Funcionou aqui como eu queria.

    MUITO Obrigado! 

    abraço.

    terça-feira, 10 de setembro de 2013 22:06