web-dev-qa-db-fra.com

String.Format pour la devise sur un TextBoxFor

J'essaie de mettre @String.Format("{0:0.00}",Model.CurrentBalance) dans cette @Html.TextBoxFor(model => model.CurrentBalance, new { @class = "required numeric", id = "CurrentBalance" })

Je veux juste que la devise apparaisse comme .00 à l'intérieur de ma zone de texte mais je n'ai pas de chance. Des idées sur la façon dont je fais cela?

19
Samjus

string.format("{0:c}", Model.CurrentBalance) devrait vous donner le formatage des devises.

OR

@Html.TextBoxFor(model => model.CurrentBalance, new { @class = "required numeric", id = "CurrentBalance", Value=String.Format("{0:C}",Model.CurrentBalance) })

29
Sam Axe
@Html.TextBoxFor(model => model.CurrentBalance, "{0:c}", new { @class = "required numeric", id = "CurrentBalance" })

Cela vous permet de définir le format et d'ajouter des attributs HTML supplémentaires.

14
Gail Foad

Alors que la solution de Dan-o fonctionnait, j'ai trouvé un problème avec l'utilisation de TempData basé sur un formulaire (voir ImportModelStateFromTempData et ExportModelStateToTempData ). La solution qui a fonctionné pour moi était celle de David Spence sur un fil connexe.

Plus précisément:

[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal? Price { get; set; }

Maintenant, si vous utilisez EditorFor dans votre vue, le format spécifié dans l'annotation doit être appliqué et votre valeur doit être séparée par des virgules:

<%= Html.EditorFor(model => model.Price) %>
1
cat5dev