I'm using MVC3 with a detailed view that needs to display a formatted dollar amounts like $1,200.00. The controller is passing in a double value in this case for MonthlyMortgage to the view. The line of code below however, does not display the correct string formatting. What is displayed is $1200.00, and what I need is $1,200.00.
I have tried:
[email protected]("{0:c}", Html.DisplayFor(model => model.MonthlyMortgage))
and I have tried this:
[email protected]("{0:#,###,###,##0.000}", Html.DisplayFor(model => model.MonthlyMortgage))
Can someone please enplane why this is not working?
@nemesv has a direct answer. The other option would be to remove String.Format()
from the View and use DataAnnotations to attach a formatting to MonthlyMortgage.
An example from MSDN:
[DisplayFormat(DataFormatString = "{0:C}")]
public Decimal ListPrice { get; set; }
And btw, #,###,###,##0.000
can be shortened to #,##0.00
You don't need to use Html.DisplayFor
because it will return MvcHtmlString
so the string.Format
doesn't apply.
Just use the string.Format
on your model:
@String.Format("{0:c}", Model.MonthlyMortgage)
Note you don't need the '$' sign anymore because the {0:c}
will take care of it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With