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

标签 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() 方法,但我还需要数据注释。

欢迎所有想法

最佳答案

由@JakubJankowski 在评论中解决。 @Html.EditorFor() 不接受重写属性上的数据注释。

关于c# - Html.EditorFor() 不支持数据注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672266/

相关文章:

asp.net-mvc - 请求来自 iframe 吗?

asp.net-mvc - ASP.NET MVC 必填字段指示符

asp.net-mvc - ICommandHandler/IQueryHandler与异步/等待

c# - 如何重构此 if 语句以添加或更新字典?

c# - 单例缩短实现

c# - 如何编写自定义模板字段类 DataControlField

.net - 监控数据库中的表

c# - 运行一天左右后,Windows 服务在尝试执行查询时开始出现 OracleExceptions

c# - 使用 Roslyn,从字符串文字参数中找到调用方法

c# - 在后面的代码中执行时,我的存储过程总是返回零