繁体   English   中英

有没有一种方法可以自定义由Html.EditorFor生成的HTML?

[英]Is there a way to customize the HTML generated by the Html.EditorFor?

当我使用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">

现在,我想用四位小数显示该值,而我发现做到这一点的唯一方法是创建一个editor template ,对吗?

现在我的问题是:我是否必须在编辑器模板中键入所有验证属性和我自己的额外类名(因为我从头开始)?

这看起来有些不合逻辑,因为当asp.net mvc团队决定生成不同的html时,我还必须更改所有的editortemplates。

因此,我想要说的是标准代码中的一种“钩子”,我可以说:我想要@Html.EditorFor所有html,然后将值格式化为4 @Html.EditorFor

有没有办法做到这一点?

(因此,我想生成的是: <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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM