Ответ 1
Вы можете украсить ваше свойство модели 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)