Principales respuestas
Estoy con el registro de usuarios en asp.net mvc5 pero no consigo hacer la validacion bien

Pregunta
-
A ver el proyecto que le estoy metiendo mano es este concretamente, yo considero que para poder ayudar a alguien al menos bajarse el proyecto y probarlo hay que hacerlo, ya se que es algoi tedioso algunas veces hacerlo, pero fundamental.
https://github.com/onzulinapps/RestService-asp.net
Bueno os lo descargais y probais, a poner por ej un correo valido, vuestro user@dominio.com o .es y la clave por ej orororor
y os va a salir una validacion que no encuentro dentro del codigo, eos es justo lo que intento entender ¿donde esta? en RegisterViewModel no esta que es donde mira segun el codigo las validaciones desde el lado del servidor, saludos.
- Editado onzulinapps lunes, 2 de marzo de 2015 12:41
Respuestas
-
public class RegisterViewModel { [Required] [EmailAddress] [Display(Name = "Correo electrónico")] public string Email { get; set; } [Required] [StringLength(100, ErrorMessage = "El número de caracteres de {0} debe ser al menos {2}.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Contraseña")] public string Password { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirmar contraseña")] [Compare("Password", ErrorMessage = "La contraseña y la contraseña de confirmación no coinciden.")] public string ConfirmPassword { get; set; } }
Esta clase puedes observar que por ejemplo la propiedad Email está decorada con un atributo [Required]
Si observas la implementación de dicho atributo en http://referencesource.microsoft.com/#System.ComponentModel.DataAnnotations/DataAnnotations/RequiredAttribute.cs,e7054544e1acadcb
En el constructor se puede ver que se emplea un Resource
DataAnnotationsResources.RequiredAttribute_ValidationError
cuyo contenido puedes ver si pulsas en RequiredAttribute_ValidationError.
internal static string RequiredAttribute_ValidationError { get { return ResourceManager.GetString("RequiredAttribute_ValidationError", resourceCulture); } }
Es decir, que se está empleando un manejador de recusros por defecto que muestra mensajes multiidiomados.
Podrías establecer su propio mensaje de esta forma en tu RegisterViewModel
[Required(ErrorMessage="ESTO ES UNA PRUEBA DE VALIDACION")]
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Marcado como respuesta onzulinapps martes, 3 de marzo de 2015 11:52
Todas las respuestas
-
-
Bueno lo mismo no me explico bien cuando pregunto pero vamos creo que queda claro que lo que estoy buscando es saber como funciona exactamente el tema de las validaciones y yo creo que mas bien por defecto viene bastante restrictivo en el lado del servidor, aqui he encontrado un tutorial que me lo han pasado por aqui
http://www.codeproject.com/Articles/710702/ASP-NET-MVC-Server-Side-Validation
Pero claro yo lo que quiero saber independientemente del objeto RegisterViewModel que se encuentra dentro del fichero AccountViewModel acabo de ver el fichero identityconfig dentro de app_start que son validaciones dentro del servidor, yo me referia concretamente a estas
// Configure la lógica de validación de contraseñas manager.PasswordValidator = new PasswordValidator { RequiredLength = 6, RequireNonLetterOrDigit = true, RequireDigit = true, RequireLowercase = true, RequireUppercase = true, };
que las he encontrado de casualidad, aun asi los mensajes si no se cumplen esas validaciones ¿donde se encuentran? saludos.
-
public class RegisterViewModel { [Required] [EmailAddress] [Display(Name = "Correo electrónico")] public string Email { get; set; } [Required] [StringLength(100, ErrorMessage = "El número de caracteres de {0} debe ser al menos {2}.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Contraseña")] public string Password { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirmar contraseña")] [Compare("Password", ErrorMessage = "La contraseña y la contraseña de confirmación no coinciden.")] public string ConfirmPassword { get; set; } }
Esta clase puedes observar que por ejemplo la propiedad Email está decorada con un atributo [Required]
Si observas la implementación de dicho atributo en http://referencesource.microsoft.com/#System.ComponentModel.DataAnnotations/DataAnnotations/RequiredAttribute.cs,e7054544e1acadcb
En el constructor se puede ver que se emplea un Resource
DataAnnotationsResources.RequiredAttribute_ValidationError
cuyo contenido puedes ver si pulsas en RequiredAttribute_ValidationError.
internal static string RequiredAttribute_ValidationError { get { return ResourceManager.GetString("RequiredAttribute_ValidationError", resourceCulture); } }
Es decir, que se está empleando un manejador de recusros por defecto que muestra mensajes multiidiomados.
Podrías establecer su propio mensaje de esta forma en tu RegisterViewModel
[Required(ErrorMessage="ESTO ES UNA PRUEBA DE VALIDACION")]
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Marcado como respuesta onzulinapps martes, 3 de marzo de 2015 11:52