2011-01-22 21 views
26

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 format y css class

<%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%> 

<%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%> 

gracias,

Filip

Respuesta

0

me temo que no hay manera limpia para lograrlo. Hay un par de posibilidades:

  1. utilizar un editor de plantillas para la propiedad del producto:

    <%: Html.EditorFor(x => x.Product) %> 
    

    y dentro de este editor de plantillas:

    <%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %> 
    <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>   
    
  2. Escribir un ayudante personalizado que lo hará añada la clase

  3. Envuelva 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 modificar la regla de CSS:

    .container150 input { 
        // some rule that applies to the textbox 
    } 
    
61

Sé que soy manera 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) })%> 
+0

Me llevó mucho tiempo encontrar esta respuesta. ¡Gracias! –

+0

@Cheddar - Gracias, hombre. ¡Esto me salvó un pelo en la cabeza! – Baahubali

0

De nuevo, puede ser tarde, pero creo que la mejor solución es usar el complemento jquery.maskedinput (también disponible como paquete nuget) ge).

¿Por qué es mejor usar un complemento que solo un formato de entrada? Bueno, cuando alguien modifica una entrada, perderá formateo, si no usa un complemento.

Here puede encontrar un uso y una demostración de cómo funciona.