У меня есть массив двойной в моей модели представления, и я хотел бы применить строку формата данных, как показано ниже:Как применить DataFormatString для массива или объекта IEnumerable в MVC Razor?
class MyVM
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:F2}")]
public double Currents[] { get; set; }
}
На мой взгляд, я использую EditorFor на массиве, как показано ниже, которые правильно работает, за исключением того, что не применяет строку формата данных.
@Html.EditorFor(model => model.Currents)
я узнал, что я могу использовать пользовательские шаблоны, но было интересно, есть более простой способ, чем создание пользовательского шаблона. Если пользовательский шаблон является единственным решением, каков самый простой пользовательский шаблон, который должен заботиться о форматировании? Я попытался создать один, но не смог правильно применить строку формата данных.
я могу создать CurrentsTemplate.cshtml в ~ Views \ Shared папку с содержимым, приведенным ниже
@model double[]
@foreach (double x in Model) {
<div class="editor-field">
@Html.TextBoxFor(m=>x, "{0:F2}")
</div>
}
и использовать его с помощью вызова @ Html.EditorFor (м => m.Currents, "CurrentsTemplate") , он будет работать, но данные формы не сохраняются после его POSTED. Думаю, мне нужны скрытые поля в цикле for вместе с TextBox.
Try без массива, т.е. использование Потоков вместо Потоков [] –
Извините это еще не вариант ... нужен массив с момента его много номеров – Raj
go with @Husein Roncevic answer – Satpal