2013-10-17 9 views
8

Nella vista MVC Razor, è necessario visualizzare un campo decimale come percentuale MA senza segno percentuale. Per esempio 2 o 2.5formattando un decimale come percentuale da visualizzare in vista?

Capisco che può essere da modello e sarà qualcosa di simile a:

[AutoMapIgnore] 
    [DisplayFormat(DataFormatString = "{0:F1}")] 
    public virtual decimal OffPeakMarginPercent { get { return OffPeakMargin * 100; } } 

Ma non sta facendo alcun effettuazione a tutti, attualmente viene visualizzato come:

Attualmente viene visualizzato come 3.00000 o 2.50000.

Potete per favore guida.

Apprezzo molto la tua guida e il tuo aiuto.

Edit:

Se formato io in vista, come di seguito, viene visualizzato come 3.0 o 2.5

@row.OffPeakMarginPercent.ToString("0.0") 
+0

Bene ha fatto si tenta '{0: n1}' – V4Vendetta

risposta

12

cambiamento

[DisplayFormat(DataFormatString = "{0:F1}")] 

a

[DisplayFormat(DataFormatString = "{0:P2}")] 

e rimuovere * 100 da getter

come detto here formato per le percentuali in decimali non è PF

+0

ho provato questo ma ancora visualizza come 3.00000. Puoi vedere la mia modifica e guida? Grazie – Toubi

1

Usa

[RegularExpression(@"^\d+(\.\d)?$", ErrorMessage = "Only one decimal point value allowed")] 
[Range(0.1,100)] 
public virtual decimal OffPeakMarginPercent { get { return OffPeakMargin * 100; } } 
+0

Grazie a @Carlos Landeras, non posso usare espressioni regolari per qualche motivo. Inoltre è un campo di calcolox. Puoi per favore guidare perché la formattazione non funziona nel modello? Vedi anche la mia modifica. Molte grazie. – Toubi

+0

Prova a utilizzare questo: {0: 000.0} –

Problemi correlati