2012-03-15 13 views
11

Se ho un valore decimale in un campo, e sto cercando di visualizzare in una pagina, come faccio a formattarlo (userei String.Format nei moduli web):Formattare un numero decimale in una vista

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

Gli errori in VS2010 con il messaggio: Modelli possono essere utilizzati solo con accesso al campo, accesso alle proprietà, indice di array a dimensione singola o espressioni di indicizzazione personalizzate a singolo parametro.

+0

Sede [questo] (http://stackoverflow.com/questions/7087495/using-razor-view-engine-how-do-i-format-a-decimal-value-to-have-commas -e due). –

+0

Hi - si prega di ignorare questo - appena trovato la risposta - per chiunque altro alla ricerca, ho semplicemente sostituito con: @ String.Format ("{0: N0}", currentItem.QualityM1) Grazie ancora, Mark – Mark

risposta

20

non vorrei fare questo all'interno della vista. Sarebbe meglio di centralizzare questo e fornire queste informazioni come metadati, come di seguito:

public class Foo { 

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

quindi utilizzare questo come al solito:

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

È necessario utilizzare Html.DisplayFor?

Altrimenti si può solo fare:

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

Dont in DisplayFor ... nella classe impostare l'atributte come questo.

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