Вы можете использовать аннотации данных для вашей модели представления:
[DisplayFormat(DataFormatString = "{0:#,##0.000#}", ApplyFormatInEditMode = true)]
public double? Weight { get; set; }
и, по вашему мнению,
@Html.EditorFor(x => x.Weight)
правильно отформатирует значение в поле ввода.
Другая возможность - написать собственный шаблон редактора для типа double (~/Views/Shared/EditorTemplates/double.cshtml
):
@model double?
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("#,##0.000#") : "")
, а затем, по вашему мнению:
@Html.EditorFor(x => x.Weight)
или, если вы этого не сделаетеЕсли вы хотите переопределить все шаблоны для всех двойных типов в вашем приложении, вы можете поместить это в какое-то пользовательское расположение шаблона, например ~/Views/Shared/EditorTemplates/MyFormattedDouble.cshtml
, а затем на ваш взгляд:
@Html.EditorFor(x => x.Weight, "MyFormattedDouble")
Лично я предпочитаю первый подход, который использует аннотации данныхконтролировать формат двойных значений.