Uso anotaciones de datos en mi proyecto ASP.NET MVC 3 para validar el modelo. Estos son extremadamente convenientes, pero actualmente son mágicos para mí. Leí que las anotaciones de datos hacen no arrojan excepciones. Entonces, ¿cómo sabe MVC agregar errores de validación al diccionario de estado modelo? ¿Cómo funciona la falla al establecer una propiedad en el modelo debido a la validación del modelo hasta MVC si no se lanza ninguna excepción? Siempre asumí que se producían excepciones cada vez que una propiedad fallaba y que el enlace del modelo MVC detectaba la excepción y la agregaba al diccionario de estado modelo.¿Cómo funcionan las anotaciones de datos?
Para probar esto he creado una aplicación de consola y añadió una clase de muestra con una anotación de validación a la misma:
public class MyObject
{
[StringLength(10, MinimumLength=3)]
public string Name { get; set; }
}
entonces instancia del objeto y trató de asignar valores a la propiedad Name que tenían menos de 3 . La propiedad asignada muy bien, a pesar de la anotación que dice que la longitud de cadena de menos de 3 no está permitida.
static void Main(string[] args)
{
MyObject mine = new MyObject();
mine.Name = "hi";
Console.WriteLine(mine.Name);
Console.ReadLine();
}
Este pequeño programa escribe "hola" en la consola. ¿Por qué? Esperaba que se enfadara al intentar establecer mine.Name
en "hola".
¿Qué me estoy perdiendo?
Gracias de antemano.
Si hago 'mine.Name'. No veo un método llamado' ValidateProperty'. – Chev
no está en mine.name. Probablemente debería leer "Llamar al método' Validate.ValidateProperty' desde * dentro * del conjunto de accesos de una propiedad ... ' –
Ohhhh, tengo. Ty ty – Chev