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>