2014-07-01 98 views
1

,当我在mvc5使用Html.EditorFor方法,像这样:有没有一种方法来定制Html.EditorFor生成的HTML?

@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时,我也必须更改所有的editortemplates。

所以我在寻找作为标准代码中的一种'钩子',我可以说:我想要所有的html为@Html.EditorFor,然后格式化值为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">

回答

2

您可以用数据说明模型定义它

检查此链接了What is the proper data annotation to format my decimal property?

[DisplayFormat(DataFormatString="{0:#.####}")] 

请参阅自定义格式字符串格式和DisplayFormatAttribute示例

+0

那摇摆!是否还有可能从资源或常量中读取格式字符串(以确保我的viemodels中的所有'datformatstrings'都是相同的)? – Michel

+0

哦,那个问题已经在这里解答了http://stackoverflow.com/questions/13576571/how-to-make-configurable-displayformat-attribute – Michel

相关问题