Форматирование десятичной точки в виде

Если у меня есть десятичное значение в поле, и я пытаюсь отобразить на странице, как его форматировать (я бы использовал string.format в веб-формах):

@Html.DisplayFor(Function(modelItem) String.Format("{0:n0}",currentItem.QualityM1))

Эти ошибки в VS2010 с помощью messae: Шаблоны могут использоваться только с доступом к полю, доступом к свойствам, индексом одномерного массива или однопараметрическими пользовательскими выражениями индексатора.

Ответ 1

Я бы не сделал этого внутри представления. Было бы лучше централизовать это и предоставить эту информацию в виде метаданных, как показано ниже:

public class Foo { 

    [DisplayFormat(DataFormatString = "{0:n0}")]
    public decimal Bar { get; set; }
}

Затем используйте это как обычно:

@Html.DisplayFor(m => m.Bar)

Ответ 2

Вам нужно использовать Html.DisplayFor?

В противном случае вы можете просто:

@String.Format("{0:n0}",currentItem.QualityM1)

Ответ 3

Не делайте в DisplayFor... в классе задайте атрибут, подобный этому.

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:N2}")]
    public virtual decimal Valor
    {
        get;
        set;
    }

Ответ 4

в MVC 5 вы можете изменить индекс View, если вы хотите просто показать два нуля после двойного значения

код Be для

  @Html.DisplayFor(modelItem => item.PRSPrice)

код после

 @Convert.ToDouble(item.PRSPrice.Value).ToString("0.00")

Thanx