2012-01-31 19 views
8

¿Hay alguna forma de tener una anotación de datos para lo que debería estar en placeholder attr en un cuadro de texto en una vista MVC?Proporcionar anotación de datos para marcador de posición attr para cuadro de texto en MVC

Ejemplo:

En mis ViewModel.cs, algo así como:

[Placeholder="First name"] 
public string FirstName { get; set; } 

En mi punto de vista:

@this.Html.TextBoxFor(m => m.FirstName) 

Si que podrían hacer esto:

<input type="text" placeholder="First name" ... /> 

¿Esto es posible? ¡Gracias!

Respuesta

10

tratar

@this.Html.TextBoxFor(m => m.FirstName, new{placeholder="First name"}) 

Ah, no en el modelo.

Puede definir su propio atributo de cliente http://blogs.msdn.com/b/aspnetue/archive/2010/02/24/attributes-and-asp-net-mvc.aspx. Creo que necesitarás un helper html personalizado para generar el html.

+1

esto es genial! ¿Sabes de qué atributo necesitaría heredar? el ejemplo en su enlace hereda de 'ActionFilterAttribute' –

+0

el ejemplo tiene una lista de clases de atributos, elija la más cercana a lo que desea hacer. O use inherit desde System.Attribute para un inicio limpio (er). – PhilW

0

No lo creo, pero podría escribir su propia ayuda personalizada y atribuir para hacerlo. http://www.aspnetwiki.com/page:creating-custom-html-helpers

+0

¡gracias por el enlace! desafortunadamente, no veo ningún ejemplo en el que pueda tener '[Placeholder =" First name "]' sobre la propiedad en mi modelo de vista. En su lugar, hay ejemplos para 'this.Html.TextboxFor (m => m.FirstName," Texto de marcador de posición aquí ")', que sería contrario al propósito porque quiero que este texto codificado sea con el modelo de vista, no en la vista. –

+0

Lo sé, necesitarías rodar tu propia ayuda y atributo. Aquí, la respuesta de BuildStarted muestra cómo creó un atributo personalizado, http://stackoverflow.com/questions/7418664/access-displayname-attribute-from-the-model-in-mvc-view. Tu ayuda personalizada podría leer tu atributo personalizado. –

Cuestiones relacionadas