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