DisplayFormat DataFormatString не работает для десятичного значения в Razor View - PullRequest
0 голосов
/ 17 июня 2020

У меня есть веб-приложение asp. net core 3.1 mvc. У меня есть модель, привязанная к представлению. Модель имеет свойство decimal, допускающее значение NULL. Мне нужно отобразить это свойство в представлении.

Вот вид, в котором выдается ошибка (слева DisplayFor):

 @Html.DisplayFor(model => model.Content)  @Html.DisplayFor(model => model.ContentUnits)

Вот свойство, которое связывается:

[Display(Name = "Content")]
[DisplayFormat(DataFormatString = "{0:d}")]
[Range(0, 100)]
public decimal? Content { get; set; }
public string ContentUnits { get; set; }

Использование отладчика и Immediate Window. Я вижу, что значение равно 0,0000400. Мне это кажется десятичным числом, поэтому я не понимаю, почему мой DataFormatString не работает. Выдает следующую ошибку:

FormatException: спецификатор формата недействителен.

1 Ответ

0 голосов
/ 17 июня 2020

Если вы хотите отображать данные в представлении, вот демонстрация:

Контроллер:

[HttpGet]
    public ActionResult TestContent()
    {
        ContentModel contentModel = new ContentModel { Content =new decimal(0.0000400),ContentUnits= "ContentUnits" };
        return View(contentModel);
    }

Просмотр:

@Html.DisplayFor(model => model.ContentUnits)
<br>
@Html.TextBox(" ", Model.Content)
<br>
@Model.Content
<br>

Результат:

enter image description here

...