是否有一种方法可以自定义HTML . editorfor生成的HTML ?
本文关键字:HTML editorfor 自定义 方法 一种 是否 | 更新日期: 2023-09-27 18:11:13
当我使用Html.EditorFor
方法时,像这样在mvc5:
@Html.EditorFor(model => model.RateHigh, new { htmlAttributes = new { @class = "form-control" } })
我得到了这样漂亮的HTML:
<input class="form-control text-box single-line" data-val="true" data-val-number="The field tarief verbruik must be a number." data-val-required="'tarief verbruik' is een verplicht veld" id="RateNormal" name="RateNormal" type="text" value="0,15">
现在我想显示4位小数的值,我发现这样做的唯一方法是创建一个editor template
,这是正确的吗?
现在我的问题是:我是否必须在编辑器模板中键入所有验证属性和额外的类名(因为我从头开始)?
这看起来有点不合逻辑,因为当asp.net mvc团队决定生成不同的html时,我也必须更改所有的编辑器模板。
所以我在标准代码中寻找的是一种"钩子",我可以说:我想要@Html.EditorFor
的所有html,然后以4位小数格式化值。
有办法做到这一点吗?
(所以我想生成的是这样的:<input class="form-control text-box single-line" data-val="true" data-val-number="The field tarief verbruik must be a number." data-val-required="'tarief verbruik' is een verplicht veld" id="RateNormal" name="RateNormal" type="text" value="0,1500">
您可以在模型中使用数据注释定义它。
什么是正确的数据注释来格式化我的十进制属性?[DisplayFormat(DataFormatString="{0:#.####}")]
参见自定义格式字符串的格式和DisplayFormatAttribute的例子