asp.net mvc 2 - mvc - Formato html.TextBoxFor y clase css
password helper mvc (3)
Me temo que no hay una manera limpia de lograr esto. Hay un par de posibilidades:
Utilice una plantilla de editor para la propiedad del producto:
<%: Html.EditorFor(x => x.Product) %>
y dentro de esta plantilla de editor:
<%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %> <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>
Escribe un ayudante personalizado que anexará la clase.
Envuelve esos cuadros de texto en un
span
:<span class="container150"> <%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%> <%: Html.TextBoxFor(model => model.Product.Name)%> </span>
y luego modifique su regla CSS:
.container150 input { // some rule that applies to the textbox }
Las dos líneas de código a continuación funcionan bien, pero quiero combinarlas. Lo que quiero decir es: quiero usar @class en la primera línea de código. ¿Cómo puedo hacer eso?
<%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%>
<%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>
Gracias,
Filipina
Nuevamente, puede ser tarde, pero creo que una solución mucho mejor es usar el complemento jquery.maskedinput (también disponible como paquete nuget).
¿Por qué es mejor usar un complemento que solo un formato de entrada? Bueno, cuando alguien modifica una entrada, perderá el formato si no usa un complemento.
Here puede encontrar un uso y una demostración de cómo funciona.
Sé que llegué tarde aquí pero acabo de encontrar una solución a este problema:
<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>