Tengo un formulario de registro y el usuario debe ingresar los pies cuadrados de su casa. Me gustaría que este valor sea solo un número entero. ¿Hay alguna manera de validar este valor usando atributos asp.net mvc?Cómo hacer la validación del modelo entero en asp.net mvc 2
Respuesta
sí, lo es, pero tendrá que hacer una versión plana del objeto que desea crear, porque la validación con atributos solo se ejecuta DESPUÉS de que MVC haya convertido sus datos en el modelo. que, cuando su valor es un int, no podrá validar si el usuario no ingresó un int, y obtendrá un mensaje de error MVC en lugar de su mensaje de error.
¿Puedes publicar el objeto que quieres hacer?
con una versión plana me refiero a todas las fechas y fechas son picaduras en la versión plana.
entonces yo uso esto:
[DisplayName("Square meters")]
[PosNumberNoZero(ErrorMessage = "need a positive number, bigger than 0")]
public string squaremeters { get; set; }
en el mismo archivo
public class PosNumberNoZeroAttribute : ValidationAttribute {
public override bool IsValid(object value) {
if (value == null) {
return true;
}
int getal;
if (int.TryParse(value.ToString(), out getal)) {
if (getal == 0)
return false;
if (getal > 0)
return true;
}
return false;
}
}
si mi ModelState es válida, entonces, yo uso AutoMapper convertir mi FLATModel en mi modelo, que está a sólo 2 líneas de código.
edición: si 0 es un número válido:
public class PosNumberAttribute : ValidationAttribute {
public override bool IsValid(object value) {
if (value == null) {
return true;
}
int getal;
if (int.TryParse(value.ToString(), out getal)) {
if (getal >= 0)
return true;
}
return false;
}
}
darse cuenta de esto ya ha sido contestada, pero la respuesta Stefanvds' es uneccessarily complicado. Sólo tiene que utilizar los AT construido en la validación de atributos:
[DisplayName("Square Feet")]
[Required(ErrorMessage = "Square Feet is Required")]
[Range(0, int.MaxValue, ErrorMessage = "Square Feet must be a positive number")]
public int SquareFeet { get; set; }
Para el rango, el sistema tiene un mensaje de error "El campo XXX debe estar entre XXX y XXX". Entonces, ErrorMessage es opcional –
Sí, estás en lo correcto. Pero el ErrorMessage personalizado es mucho más fácil de usar que: "El campo Square Feet debe estar entre 0 y 2147483647". ;) –
Al menos en MVC2 esto no funciona si los datos pasados no son un entero válido.El marco pasará en el valor predeterminado que es 0 y la validación tendrá éxito, pero luego fallará cuando el marco vaya a instanciar realmente el modelo y vea que no puede convertir los datos en un número entero. Coloca el mensaje de error predeterminado en ese punto. –
por lo general utiliza el atributo rango de la siguiente manera:
positiva int:
[Range(0,int.MaxValue)]
public int Id { get; set; }
negativo int:
[Range(int.MinValue,0)]
public int Id { get; set; }
Cualquier int :
[Range(int.MinValue,int.MaxValue)]
public int Id { get; set; }
Bueno, usar Range
para un campo int
no funcionará si tiene algunas letras como "a".
No se llama al error Handler
(ASP.NET CORE 1.0 RC2).
- 1. La validación del modelo ASP.NET MVC rompe la regla MVC?
- 2. Localizar la validación del modelo por defecto en mvc 2
- 3. ¿Cómo funciona realmente la validación en ASP.NET MVC 2?
- 4. Solicitar validación - ASP.NET MVC 2
- 5. ASP.NET MVC La validación del modelo no funciona en ViewModel
- 6. Prueba del enlace del modelo en ASP.NET MVC 2
- 7. Validación del modelo/ASP.NET MVC 3 - Atributo requerido condicional
- 8. ¿Cómo puedo hacer "causesvalidation = false" en ASP.NET MVC 2?
- 9. Validación del lado del cliente ASP.NET MVC
- 10. Cómo escribir una validación jQuery personalizada del lado del cliente en ASP.NET MVC 2 RC?
- 11. Validación del modelo con NancyFX
- 12. Validación de rango dinámico en ASP.NET MVC 2
- 13. La validación del lado del cliente ASP.NET MVC 2 RC no funciona
- 14. asp.net entrada de mvc/validación de modelo multi idioma
- 15. RadioButtonFor en ASP.NET MVC 2
- 16. ASP.Net MVC 3 Modelo JSON Enlace y validación del modelo del lado del servidor mezclado con la validación del lado del cliente
- 17. Asp.Net MVC 2 Casilla siempre falsas en el modelo
- 18. ¿Proporciona mensajes de error localizados para la validación de modelos no atribuidos en ASP.Net MVC 2?
- 19. Unidad modelo personalizado de pruebas aglutinante en ASP.NET MVC 2
- 20. Vista parcial de carga de ASP.NET MVC 2 usando jQuery - sin validación del lado del cliente
- 21. asp.NET MVC 2 DataAnnotations UpdateModel <T> validación
- 22. ¿Cómo verificar los errores de validación del modelo en asp.net mvc?
- 23. ASP.NET MVC 2 y ComponentModel.DataAnnotations Validación: atributo de valor mínimo
- 24. Validación simple de ASP.NET MVC 1.0
- 25. ¿La validación de ASP.Net MVC 2 necesita más reflexión en términos de patrones y uso?
- 26. ASP.NET MVC 2 dtos de validación utilizando en lugar de entidades del dominio
- 27. ASP.NET MVC 3 RC 2 validación del lado del cliente con globalización
- 28. ASP.NET MVC 2 - ¿Cómo uso DropDownListFor?
- 29. resorte mvc anotación validación número entero
- 30. ASP.NET MVC 2 - Html.DropDownListFor confusión con el modelo de vista
mucho más fácil utilizar una expresión regular aquí: http://stackoverflow.com/questions/5661569/regular-expression-to-match-numbers-only-not-starting-with-zero – GP24