2015-04-30 15 views
12

Ho il seguente POCO con costo come float.annotazione dati ASP.NET MVC per formato valuta

public class CostChart 
{ 
    public string itemType { get; set; } 
    public float? Cost{ get; set; } 

} 

Devo restituire Costo in formato valuta, ad es.

$ U 4,882,50.

Quale annotazione dati dovrei usare?

Questo è il modo in cui visualizzo a mio avviso.

<td>@Model.Cost</td> 
+4

E 'così in ritardo, ma si prega di non utilizzare mai 'float's per valuta. Non sono precisi. Usa invece un 'decimale '. –

risposta

28

Hai provato a usare DataType.Currency:

public class CostChart 
{ 
    public string itemType { get; set; } 
    [DataType(DataType.Currency)] 
    public float? Cost{ get; set; } 

} 

In alternativa, è possibile utilizzare DataFormatString in questo modo:

[DisplayFormat(DataFormatString = "{0:C0}")]` 
public float? Cost{ get; set; } 

Ma preferisco impostare il formato di visualizzazione con EditorFor. Ecco un ottimo tutorial sul tutorial Extending Editor Templates for ASP.NET MVC.

In questo modo, si scrive la logica di visualizzazione delle proprie valute in un solo posto e non è necessario aggiungere quell'annotazione di estrazione ogni volta che si desidera visualizzare un importo in valuta.

+0

Ho provato sopra ma non sta cambiando il mio valore in valuta a mio avviso, sta ancora mostrando valore senza il formato valuta. Sto usando questa linea sulla mia vista td> @ Model.Cost – immirza

+0

Prova l'editor per la versione del modello nel tutorial. In tal caso, dovrebbe essere @ Html.EditorFor (m => m.Cost). –

+0

@ HTML.EditorFor() basta convertire l'etichetta in campo modificabile con il valore che mostra 1233.44 e non nel formato valuta. Mi manca un punto qui> – immirza

1

provare questo:

public class CostChart 
    { 
    public string itemType { get; set; } 

    [DataType(DataType.Currency)] 
    public float? Cost{ get; set; } 
    } 

se ancora non si vede il simbolo $, in web.config sotto scrittura questa riga di codice

<globalization culture ="en-us"/>