String.Format用于TextBoxFor上的货币

时间:2011-08-05 23:04:53

标签: c# asp.net-mvc-3 string.format

我正在尝试将@String.Format("{0:0.00}",Model.CurrentBalance)加入此@Html.TextBoxFor(model => model.CurrentBalance, new { @class = "required numeric", id = "CurrentBalance" })

我只想让货币在我的文本框中显示为.00,但我没有运气。关于我如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:29)

string.format("{0:c}", Model.CurrentBalance)应该为您提供货币格式。

OR

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

答案 1 :(得分:13)

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

这使您可以设置格式并添加任何额外的HTML属性。

答案 2 :(得分:1)

虽然Dan-o's解决方案有效,但我发现它在使用基于表单的TempData方面存在问题(请参阅ImportModelStateFromTempData and ExportModelStateToTempData)。对我有用的解决方案是David Spence's在相关主题上。

具体做法是:

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

现在,如果您在视图中使用 EditorFor ,则应该应用注释中指定的格式,并且您的值应以逗号分隔:

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