我试图格式化Html.EditorFor文本框有货币格式,我想它的基础关闭该线程的String.Format货币对TextBoxFor 。 然而,我的文字只是仍然显示为0.00,没有货币格式。
<div class="editor-field">
@Html.EditorFor(model => model.Project.GoalAmount, new { @class = "editor- field", Value = String.Format("{0:C}", Model.Project.GoalAmount) })
有我在做什么的代码,这里是那场在网站本身当然包含的编辑场DIV中的HTML。
<input class="text-box single-line valid" data-val="true"
data-val-number="The field Goal Amount must be a number."
data-val-required="The Goal Amount field is required."
id="Project_GoalAmount" name="Project.GoalAmount" type="text" value="0.00">
任何帮助,将不胜感激,谢谢!
你可以装饰你的GoalAmount
与视图模型属性[DisplayFormat]
属性:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
public decimal GoalAmount { get; set; }
并在视图简单地:
@Html.EditorFor(model => model.Project.GoalAmount)
在EditorFor助手的第二个参数没有做所有你认为它。 它可以让你通过额外的ViewData给编辑模板,它不是htmlAttributes。
另一种可能性是写货币的自定义编辑模板( ~/Views/Shared/EditorTemplates/Currency.cshtml
):
@Html.TextBox(
"",
string.Format("{0:c}", ViewData.Model),
new { @class = "text-box single-line" }
)
然后:
@Html.EditorFor(model => model.Project.GoalAmount, "Currency")
或者使用[UIHint]
[UIHint("Currency")]
public decimal GoalAmount { get; set; }
然后:
@Html.EditorFor(model => model.Project.GoalAmount)