Filip
Filip

Reputation: 1097

Html.TextBoxFor format and css class

The two lines of code below work fine, but I want to combine them. What I mean is: I want to use the @class in the first code line. How can I do that?

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

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

thanks,

Filip

Upvotes: 35

Views: 67999

Answers (3)

Mateusz Kopij
Mateusz Kopij

Reputation: 123

Again, it may be late, but I believe that much better solution is to use jquery.maskedinput plugin (also available as a nuget package).

Why is it better to use a plugin than just an input format? Well, when someone modifies an input, you will loose formating, if you don't use a plugin.

Here you can find a usage and a demo of how it works.

Upvotes: 0

Cheddar
Cheddar

Reputation: 4758

I know I'm way late here but I just found a solution to this issue:

<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>

Upvotes: 75

Darin Dimitrov
Darin Dimitrov

Reputation: 1038720

I am afraid there is no clean way to achieve this. There are a couple of possibilities:

  1. Use an editor template for the Product property:

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

    and inside this editor template:

    <%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %>
    <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>        
    
  2. Write a custom helper that will append the class

  3. Wrap those textboxes in a span:

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

    and then modify your CSS rule:

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

Upvotes: 0

Related Questions