我正在使用MVC 5,但在格式化十进制数字时遇到问题
我的模型中有一个精度为18,5的小数,我想显示它以便用EditorFor
进行编辑,但是即使DataFormatString
是{{1 }}
ApplyFormatInEditMode
以数字true
为例
如果我将其渲染为:
[DisplayFormat(DataFormatString = "{0:#.#####}", ApplyFormatInEditMode = true)]
public decimal? Example{ get; set; }
我如何使用它?
谢谢!
答案 0 :(得分:1)
使用内置默认模板时,@Html.EditorFor(x => x.Example)
的结果为4,而不是4.00000,因此,我只能假定您必须为typeof EditorTemplate
定义一个自定义decimal?
(请检查EditorTemplates
和/Views/Shared
文件夹中的Views/YourControllerName
文件夹,查找名为Decimal.cshtml
的文件)。
使用TextBoxFor()
时看到的结果是正确的。仅在使用[DisplatFormat]
或DisplayFor()
时才使用EditorFor()
属性。要使用TextBoxFor()
格式化值,您需要使用接受格式字符串的重载
@Html.TextBoxFor(m => m.Example, "{0:#.#####}") // result: 4