Asp.net-Mvc
DisplayFormat 未應用於十進制值
我有一個模型屬性,我正在嘗試使用 EditorFor 模板呈現,並且我正在嘗試使用 DisplayFormat 屬性應用格式設置。然而,它根本不起作用——它完全被忽略了。
這是我的模板:
@model System.Decimal? @Html.TextBoxFor(m => m)這是我的模型:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0.00}")] public decimal? Retail { get; set; }這是我的看法:
@Html.EditorFor(m => m.Retail)但它正在渲染一個具有以下值的文本框:
189.9900
這看起來很簡單,但它不起作用,我不知道為什麼。
更新: 只是為了好玩,我用 DisplayFor 模板嘗試了它,它起作用了:
@Html.DisplayFor(m => m.Retail)那麼,當我設置
ApplyFormatInEditMode為 true 時,為什麼 DisplayFor 模板可以工作,而不是 EditorFor 模板?更新 2: 沒關係,有效的原因是因為我的十進制顯示模板被硬編碼為這種格式。所以我的顯示模板也不起作用。
Darin Dimitrov 發布了這個答案,我能夠使用他的解決方案讓它工作:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue)有點粗魯,IMO,這對 w/ 不起作用
TextBoxFor,但至少它起作用。
試試這種格式,它輸出 18.999,00
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:N}")]