Html.EditorFor()不支持数据注释

时间:2016-11-18 08:17:16

标签: c# asp.net asp.net-mvc razor

我有一个具有以下属性的模型:

[Required]
[HiddenInput(DisplayValue = false)]
public override int Id { get; set;}

现在,我的理解是html助手在渲染属性时应该遵循这些数据注释属性。但是当我做的时候

@Html.EditorFor(m => m.Id) 

生成以下html:

<input class="text-box single-line" id="Id" name="Id" type="number" value="2">

我希望隐藏这个字段,但事实并非如此。我找到了另一个能够遵守注释属性的助手:

@Html.Editor("Id")

由此产生的html将字段设置为隐藏,因为它应该是:

<input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Id" name="Id" type="hidden" value="2">

据我所知,两个帮助程序都来自命名空间System.Web.Mvc.Html,两者的实现都来自System.Web.Mvc程序集,版本5.2.3.0。

我想使用@ Html.EditorFor()方法,但我还需要数据注释。

欢迎所有想法

1 个答案:

答案 0 :(得分:2)

由@JakubJankowski在评论中解决。 @ Html.EditorFor()不支持覆盖属性的数据注释。