首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EditorFor和ApplyFormatInEditMode

EditorFor和ApplyFormatInEditMode
EN

Stack Overflow用户
提问于 2018-08-17 00:17:31
回答 1查看 352关注 0票数 0

我使用的是MVC5,我在处理十进制数时遇到了问题

我的模型中有一个精度为18,5的小数,我想显示它以便使用EditorFor进行编辑,但它忽略了DataFormatString,即使ApplyFormatInEditModetrue

代码语言:javascript
复制
[DisplayFormat(DataFormatString = "{0:#.#####}", ApplyFormatInEditMode = true)]
public decimal? Example{ get; set; }

以数字4为例

如果我将其呈现为:

代码语言:javascript
复制
@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

我该如何使用它呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 07:22:55

当使用内置的默认模板时,@Html.EditorFor(x => x.Example)的结果将是4,而不是4.00000,因此我只能假设您必须为decimal?的类型定义一个自定义EditorTemplate (检查/Views/SharedViews/YourControllerName文件夹中的Decimal.cshtml文件)。

使用TextBoxFor()时看到的结果是正确的。只有在使用DisplayFor()EditorFor()时,才会考虑[DisplatFormat]属性。要使用TextBoxFor()格式值,需要使用接受格式字符串的重载

代码语言:javascript
复制
@Html.TextBoxFor(m => m.Example, "{0:#.#####}") // result: 4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51881439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档