modelo de componente
En la sección anterior, aprendimos sobre la transferencia de datos del modelo entre interfaces, pero muchas veces, para garantizar la validez de los datos al transferir datos, tenemos que proporcionar datos básicos para los atributos relevantes. del Modelo.
En esta sección aprenderemos cómo usar los atributos en el espacio de nombres System.ComponentModel.DataAnnotations para especificar la validación de cada campo en el modelo de datos.
Estos atributos se utilizan para definir patrones de validación comunes, como comprobaciones de rango y campos obligatorios. La función DataAnnotations permite a MVC proporcionar comprobaciones de validación de clientes y servidores, lo que elimina la necesidad de realizar codificación adicional para controlar la validez de los datos.
El atributo System.ComponentModel.DataAnnotations se puede utilizar con Entity Data Model (EDM), LINQ to SQL y otros modelos de datos. También puede crear atributos de validación personalizados.
Para obtener más información sobre DataAnnotations, consulte la descripción general de System.ComponentModel.DataAnnotations
Verificación del nivel de datos
Cree un proyecto y cree una nueva clase de modelo denominada Usuario
publicclass User { publicint ID { get; set; } }
Tome la verificación Create como ejemplo para aprender la verificación de DataAnnotations.
Nuevo método de creación
//Nuevo// GET: /Usuario/Crear resultado de acción público Create() { return View() }
Agregar vista<; /p>
Nota: Al agregar una vista, si la vista fuertemente tipada no puede encontrar el modelo, se recomienda regenerar la solución.
Verificación no nula
Usuario publicclass { publicint ID { get; displayName("nombre")] [Required(ErrorMessage = "El nombre no puede estar vacío")] nombre de cadena pública { get; set; } }
Agregar vista para ejecutar directamente
Verificación de longitud de caracteres
usuario de clase pública { ID de publicint { set; DisplayName( "Nombre")] [Obligatorio(ErrorMessage = "El nombre no puede estar vacío")] publicstring Name { get; ) ] publicstring Contraseña { get; set; } }
Ejecutar directamente después de agregar la vista
Verificación de número
[DisplayName("Edad")] [Rango (1, int.MaxValue, ErrorMessage = "Ingrese un número mayor o igual a 1")] publicint Edad { get }
Agregue una vista para ejecutarla directamente
Verificación de expresión regular
p>[DisplayName("Email")] [RegularExpression(@"^\w+((-\w+)|(\.\w+))*\@[A-Za -z0-9]+( (\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$",
Mensaje de error = " Ingrese el formato de correo electrónico correcto\ nEjemplo: abc@123.com")] publicstring Correo electrónico { get; set; }
Efecto de ejecución después de agregar la vista
Verificación de lógica empresarial p>
Verificación del extremo del servicio remoto
Verificación de solicitud asincrónica remota, obtenga la verificación del método especificado en el controlador especificado durante [HttpGet]. Este método debe marcarse con [HttpGet] y devolverse. type es un objeto JavaScript de tipo Json.
Código de modelo
[DisplayName("Name")] [Required(ErrorMessage = "El nombre no puede estar vacío")] [Remote("GetUser", "User", ErrorMessage = "El nombre ya existe")] publicstring Name { get; set;
Código del controlador
//HttpGet debe agregarse [HttpGet] public ActionResult GetUser(nombre de cadena) { return Json(name != "aa", JsonRequestBehavior.AllowGet); }
Agregue directamente la vista para ejecutar
Verificación de Attbitue personalizada
Código de modelo
[Obligatorio] [StringLength(15)] [LoginUnique] publicstring Login { get; set;
Código de atributo
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property , AllowMultiple = false, Inherited = true)] publicsealedclass LoginUniqueAttribute: ValidationAttribute { privatestaticreadonlystring DefaultErrorMessage = "iniciar sesión único";//MUI.login_unique public LoginUniqueAttribute() : base(DefaultErrorMessage) { } publicoverridestring FormatErrorMessage(nombre de cadena) { return DefaultErrorMessage; } publicoverridebool IsValid(objectvalue) { return UserService.Check(p=>p.Name==value.ToString());
p>De hecho, la verificación de Microsoft DataAnnotations se ha utilizado por completo en la plataforma VS, ya sea un programa web, un programa WForm o incluso un programa Silverlight, puede utilizar la verificación de DataAnnotations mejorada de Microsoft, que puede. decirse que es omnipresente. Sin embargo, en lo que respecta a estos tres programas, la verificación de MVC es relativamente completa, simple y aplicable.