Skip to main content

Format a decimal in a view [Resolved]

If I have a decimal value in a field, and I am trying to display on a page, how do I format it (I would use string.format in web forms):

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

That errors in VS2010 with the messae: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.


Question Credit: Mark
Question Reference
Asked June 13, 2016
Posted Under: Programming
43 views
3 Answers

I wouldn't do this inside the view. It would be better to centralize this and provide this information as metadata as below:

public class Foo { 

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

Then use this as usual:

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

credit: Al Lelopath
Answered June 13, 2016

Do you need to use Html.DisplayFor?

Otherwise you can just do:

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

credit: Richard Dalton
Answered June 13, 2016

dont do in DisplayFor... in the class set the atributte like this one.

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

credit: Nostradamus
Answered June 13, 2016
Your Answer
D:\Adnan\Candoerz\CandoProject\vQA