C# 隐藏数据批注不会在EditorFor()中隐藏字段?

C# 隐藏数据批注不会在EditorFor()中隐藏字段?,c#,asp.net-mvc,razor,editorfor,C#,Asp.net Mvc,Razor,Editorfor,我似乎无法理解为什么我的模型类中的隐藏数据注释不起作用。 我的模型: using ... using System.Web.Mvc; namespace Store.Domain.Entities{ public class MyModel { [HiddenInput(DisplayValue = false)] public int ModelID { get; set; } [Required] public st

我似乎无法理解为什么我的模型类中的隐藏数据注释不起作用。
我的模型:

using ...
using System.Web.Mvc;

namespace Store.Domain.Entities{
    public class MyModel {
        [HiddenInput(DisplayValue = false)]
        public int ModelID { get; set; }

        [Required]
        public string ModelName { get; set; }
    }
}
在我看来,我这样称呼这个模型:

@model Store.Domain.Entities.MyModel
...
@using (Html.BeginForm("Method", "Controller")){
    <div class="form-group">
         @Html.EditorFor(Model => Model, new { htmlAttributes = new { @class = "form-control" }, })
    </div>
}
...
@model Store.Domain.Entities.MyModel
...
@使用(Html.BeginForm(“方法”、“控制器”)){
@EditorFor(Model=>Model,new{htmlAttributes=new{@class=“formcontrol”},})
}
...
web.config:

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
   <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="Store.WebUI" />
    <add namespace="Store.WebUI.HtmlHelpers" />
   </namespaces>
  </pages>
 </system.web.webPages.razor>

基本-但它将显示所有属性的字段-以及获取HiddenInput的ModelID???这是什么原因造成的?

。生成源:

<form action="/Controller/Method" method="post">    
  <div class="form-group">
    <input data-val="true" 
           data-val-number="The field ModelID must be a number." 
           data-val-required="The ModelID field is required." 
           id="ModelID" 
           name="ModelID" 
           type="hidden" 
           value="0" />
    <div class="editor-label">
      <label for="ModelName">ModelName</label>
    </div>
    <div class="editor-field">
      <input class="text-box single-line" 
             data-val="true" 
             data-val-required="The ModelName field is required." 
             id="ModelName" 
             name="ModelName" 
             type="text" 
             value="" /> 
      <span class="field-validation-valid" 
            data-valmsg-for="ModelName" 
            data-valmsg-replace="true"></span>
    </div>
  </div>
</form>

我在没有参数的情况下试过-它仍然不起作用??嗯,奇怪吗?它可能是程序集引用吗?嗯。。看起来不错,我在问题中上传了我的系统设置。您是否有自己的HTMLHelper中自定义的
EditorFor()
?您是否有覆盖默认模板的EditorTemplate?
<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Optimization"/>
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
</system.web.webPages.razor>