Формат по умолчанию для десятичных дробей - PullRequest
0 голосов
/ 06 декабря 2018

Большинство значений в нашей системе хранятся как десятичные дроби - 99% времени используются целые числа, однако иногда числа могут быть введены с точностью до 2 десятичных знаков.

Поэтому требуется, чтобы все числа отображались как целые числа, если только не присутствует десятичная дробь, и в этом случае она должна отображаться с 1 или 2 десятичными разрядами, в зависимости от числа.

Очевидно, что этого можно достичь, используя

[DisplayFormat(DataFormatString = "{0:#,0.##}", ApplyFormatInEditMode = true)]

на каждом поле и добавляя .ToString("#,0.##") везде, но это занимает очень много времени, особенно в больших классах, а неупомяните, что сделать код очень трудным для чтения.

Поскольку это применимо ко всем десятичным знакам - кажется, что было бы намного проще просто переопределить формат по умолчанию и применить всю систему.

Есть лиспособ сделать это?

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете определить шаблон отображения по умолчанию, который будет выбран при каждом использовании .DisplayFor(...).Для свойства decimal необходимо создать следующий файл: Views/Shared/DisplayTemplates/decimal.cshtml

Файл должен содержать определение модели, как и обычный вид, и затем все, что вам нужно для его визуализации:

@model decimal

@{
    <span>@Model.ToString("#,0.##")</span>
}

То же самое работает для .EditorFor(...) с Views/Shared/EditorTemplates/decimal.cshtml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...