Подтвердить что ты не робот

Формат html.TextBoxFor и класс css

Две строки кода ниже работают нормально, но я хочу их комбинировать. Я имею в виду: я хочу использовать @class в первой строке кода. Как я могу это сделать?

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

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

спасибо,

Filip

4b9b3361

Ответ 1

Я знаю, что я опоздал, но я нашел решение этой проблемы:

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

Ответ 2

Я боюсь, что нет чистого способа добиться этого. Есть несколько возможностей:

  • Используйте шаблон редактора для свойства Product:

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

    и внутри этого шаблона редактора:

    <%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %>
    <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>        
    
  • Напишите пользовательский помощник, который добавит класс

  • Оберните эти текстовые поля в span:

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

    а затем измените правило CSS:

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

Ответ 3

Опять же, может быть и поздно, но я считаю, что гораздо лучшим решением является использование jquery.maskedinput плагина (также доступного как пакет nuget).

Почему лучше использовать плагин, чем только формат ввода? Ну, когда кто-то изменяет ввод, вы потеряете формирование, если вы не используете плагин.

Здесь вы можете найти использование и демонстрацию того, как это работает.