Ответ 1
Я знаю, что я опоздал, но я нашел решение этой проблемы:
<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>
Две строки кода ниже работают нормально, но я хочу их комбинировать. Я имею в виду: я хочу использовать @class в первой строке кода. Как я могу это сделать?
<%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%>
<%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>
спасибо,
Filip
Я знаю, что я опоздал, но я нашел решение этой проблемы:
<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>
Я боюсь, что нет чистого способа добиться этого. Есть несколько возможностей:
Используйте шаблон редактора для свойства 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
}
Опять же, может быть и поздно, но я считаю, что гораздо лучшим решением является использование jquery.maskedinput плагина (также доступного как пакет nuget).
Почему лучше использовать плагин, чем только формат ввода? Ну, когда кто-то изменяет ввод, вы потеряете формирование, если вы не используете плагин.
Здесь вы можете найти использование и демонстрацию того, как это работает.