1: <p>
2: <label for="NombreEmpleado">NombreEmpleado:</label>
3: <%= Html.TextBox("NombreEmpleado")%>
4: <%= Html.ValidationMessage("NombreEmpleado", "*") %>
5: </p>
Para presentar las diferentes propiedades de un objeto, incluso, mucha gente simplemente las deja asi mismo como las genera la herramienta de "AddView" de Visual Studio.
El problema esta en que si se fijan el valor que sale puesto en el label es exactamente el nombre que le pusimos a la propiedad del objeto, sin espacios y sin formato alguno. Generalmente es el nombre del campo de la Base de Datos, especialmente si utilizamos LINQ2SQL o Entity Framework para generar las clases.
Lo que siempre terminamos haciendo es ir y manualmente cambiar el contenido del label para que se vea mas presentable nuestro formulario:
1: <label for="NombreEmpleado">Nombre del Empleado:</label>
Pero esto se vuelve una tarea muy repetitiva y muy aburrida luego de que tengamos que cambiar la misma propiedad una y otra vez en varios sitios.
Como ya mencione en mi post anterior sobre los DataAnnotations en MVC 2, ya existe una manera en la que podemos incluir metaData que esta relacionada a nuestros objetos en una capa separada, la cual es luego utilizada por el motor de MVC.
Tomaremos este caso sencillo, en el cual queremos que nuestros objetos tengan los nombres apropiados en todos los lados que se esten utilizando, pero no queremos tener que digitarlos una y otra vez.
Primero, debemos crearle una clase parcial con la metaData que este asociada a nuestros objetos y utilizar la propiedad DisplayName:
1: [MetadataType(typeof(EmpleadoMetaData))]
2: public partial class Empleado
3: {4: public string NombreEmpleado {get; set;}
5: 6: } 7: class EmpleadoMetaData
8: {9: [Required(ErrorMessage = ("El nombre es un campo requerido"))]
10: [DisplayName("Nombre del Empleado:")]
11: public string NombreEmpleado {get; set;}
12: }Luego, en nuestros views debemos asegurarnos que en vez de utilizar:
1: <label for="NombreEmpleado">NombreEmpleado:</label>
usemos:
1: <%= Html.LabelFor(t => t.NombreEmpleado) %>
Y listo, como podran ver, al utilizar el helper de HTML.LabelFor, se busca la metaData que tiene asociada ese objeto y se presenta en nuestro View el texto que queremos, y ahora lo tenemos todo concentrado en una capa separada, donde podemos modificarlo facilmente sin mucho esfuerzo.
0 comments:
Post a Comment