Saltar apartados

Validació modele

Ja hem treballat amb la presentació de les dades, i ara és el moment de validar que les dades que s'introdueixen són correctes, per a després emmagatzemar-ho (açò serà en la pròxima sessió).

Per a validar les dades haurem de prémer el botó emmagatzemar i a ¿on ens porta l'entorn?. Doncs a cap lloc perquè hem de crear un nou mètode que gestione la informació introduïda. Aqueix mètode s'ha de cridar igual que el de presentació però amb una sèrie de diferència.

  1. Haurem de passar com a paràmetre el model amb el qual hem treballat en l'edició, en el nostre cas catalogador
  2. Ha d'incloure, amb una definició, que les dades es reben per POST. Açò s'aconsegueix posant [HttpPost] abans de la declaració del mètode

Per tant el resultat seria el següent

Accion Editar con método POST

Es controla en una excepció tota la lògica d'emmagatzematge. Primer validem, en cas correcte emmagatzemarem les dades i en cas contrari vam mostrar de nou la vista.

Si ho provem veurem que funciona i que ens redirigeix el mètode Index, que si tenim definit correctament (incloent la vista) veurem que ens porta allí, perquè el model ha sigut validat.

La pregunta que ens fem ara és, ¿quina valida?. Nosaltres no hem definit cap regla que haja de complir el nostre model.

Regles de validació

Per a assignar regles, hem d'acudir de nou al model i començar a afegir definicions. Per a poder afegir-les hem d'incloure els espais de noms

using System.ComponentModel.DataAnnotations;

using System.ComponentModel;

using System.Web.Mvc;

perquè puguem usar els atributs de validació.

Anem a posar una molt bàsica, que siga obligatori el camp CSS [Required].

Definir un campo obligatorio

També en ocasions no ens agrada que aparega com a etiqueta el nom del camp del model, si no que volem una descripció pròpia en el cas de Css volem que siga Fulla d'estils [DisplayName].

Definimos la descripción del campo

Si generem la solució i editem, veurem que ja queda reflectida la nova descripció

Visualizar editor

A més si no posem cap valor en el camp Fulla d'estil i premem el botó Actualitzar, observarem que ens apareix un missatge d'error.

Validación de la acción editar

Altres definicions que podem trobar són: (http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html)

  • [HiddenInput] Indica que el camp no és visible
  • [UIHint("TemplateControl")] Indica la plantilla que s'ha d'utilitzar per a mostrar aquest camp. Hi ha disponible un exemple de plantilles per a les dades del model.
  • [ScaffoldColumn(false)] En els casos en els quals el tipus de camp no sàpia com representar-ho, li diem que ho ignore
  • DisplayColumn Defineix el comportament d'Html.DisplayText() i Html.DisplayTextFor().
  • DataType Podem especificar el tipus de dada que és. D'aqueixa manera es pot personalitzar el format. Per exemple si s'especifica com [DateType(DateType.data)] el format que li aplica és {0:d}
  • DisplayFormat [DisplayFormat(DataFormatString = "{0:c}")]
  • [ReadOnly(true)] Camp de només lectura
  • [Range(EntreValor, HastaValor, ErrorMessage="El valor ha d'estar entre EntreValor i HastaValor")] Indiquem el rang vàlid per a un nombre
  • [StringLength(12)] Grandària màxima que pot ocupar la cadena de text
  • [RegularExpression("$ul>

Servei d'Informàtica ASP.NET MVC 2 Framework


Universitat d'Alacant
Carretera de Sant Vicent del Raspeig s/n
03690 Sant Vicent del Raspeig
Alacant (Spain)

Tel: (+34) 96 590 3400

Fax: (+34) 96 590 3464

Per a més informació: informacio@ua.es, i per a temes relacionats amb aquest servidor web: webmaster@ua.es

Carretera de Sant Vicent del Raspeig, s/n - 03690 Sant Vicent del Raspeig - Alacant - Tel.: 96 590 3400 - Fax: 96 590 3464