none
Error ModelState.Isvalid números con formatos con separadores de miles. RRS feed

  • Pregunta

  • Hola:

    Cuando la vista devuelve el modelo al controlador, los números tienen formato con separador de decimales y de miles (ej. 1.000.000,00).

    Entoces no se como se pueden validar los números con formato de separaciones de miles. Y si no se puediese como puedo hacer para poder cambiar los puntos de separación de miles por "". Y donde se debe hacer, si antes de salir de la vista o en el mismo controlador.

    Un Saludo.

    martes, 12 de noviembre de 2019 20:58

Respuestas

  • El problema es que si lo cambio a string, me permitiría meter caracteres alfabeticos. 

    Exacto. Concretamente, el separador de miles sería un carácter alfabético a estos efectos. Por eso cambiamos a string, para que se pueda transmitir ese carácter al método de acción.

    Evidentemente, una vez que dentro del método hagas el TryParse, ahí detectarías el error en caso de que llegase un carácter inadecuado para el número y responderías con el error oportuno.

    • Marcado como respuesta elturle domingo, 17 de noviembre de 2019 11:27
    miércoles, 13 de noviembre de 2019 21:02

Todas las respuestas

  • Si no te quieres complicar mucho, cambia el modelo que recibes en el método de acción para que el dato sea de tipo string en lugar de numérico. Y luego dentro del método haces un "Parse" o "TryParse" de ese string haciendo uso de las muchas sobrecargas que tienen estos métodos para procesar los separadores en el formato que quieras. Una vez "parseado" ya copias ese resultado desde el modelo de la vista al modelo "de verdad" que uses internamente en el programa.
    martes, 12 de noviembre de 2019 22:52
  • Hola:

    El problema es que si lo cambio a string, me permitiría meter caracteres alfabeticos. 

    ¿De que otras formas se puede enforcar este problema?

    Un Saludo.

    miércoles, 13 de noviembre de 2019 20:16
  • El problema es que si lo cambio a string, me permitiría meter caracteres alfabeticos. 

    Exacto. Concretamente, el separador de miles sería un carácter alfabético a estos efectos. Por eso cambiamos a string, para que se pueda transmitir ese carácter al método de acción.

    Evidentemente, una vez que dentro del método hagas el TryParse, ahí detectarías el error en caso de que llegase un carácter inadecuado para el número y responderías con el error oportuno.

    • Marcado como respuesta elturle domingo, 17 de noviembre de 2019 11:27
    miércoles, 13 de noviembre de 2019 21:02
  • Muchas Gracias Alberto.

    Un Saludo.

    domingo, 17 de noviembre de 2019 11:27