Cómo establecer el atributo ‘class' en los controles creados con ASP.NET MVC

14 ene. 2009

Una de las formas de establecer las propiedades de los controles que se crean utilizando los métodos deASP.NET MVC es usar objetos anónimos de C#, como si estos se trataran de un diccionario.

Por ejemplo, para crear un TextBox con la propiedad ‘MaxLength’ y deshabilitado, usamos la siguiente instrucción:

<%=Html.TextBox("title", ViewData.Eval("title"), new { maxlength = 300, disabled = "disabled" })%> })%>

El problema surge cuando queremos utilizar una palabra reservada como nombre de la propiedad en un objeto anónimo, ya que en ese caso el compilador nos indicará que no es válido. Y precisamente al atributo ‘class’ que se utiliza para indicar un estilo a un control ¡es una de estas palabras reservadas!

Ejemplo de código no válido por utilizar la palabra reservada ‘class’:

<%=Html.TextBox("title", ViewData.Eval("title"), new { class = "titleedit", maxlength=300 })%>

La solución en estos casos es utilizar la arroba como prefijo de las palabras reservadas que queramos utilizar como propiedades en objetos anónimos. Por tanto, para aplicar el atributo class al textbox en ASP.NET MVC usaremos un código similar a este:

<%=Html.TextBox("title", ViewData.Eval("title"), new { @class = "titleedit", maxlength=300 })%>

Por supuesto, esto lo puedes aplicar en cualquier palabra reservada para crear objeto anónimo:

var a = new {@int = 21, @class = "23", @readonly = true};

Espero que os haya servido de utilidad.

comments powered by Disqus
subir