我有一个ASP.Net MVC项目,我正在研究,我有一个模型,我想转变为我的形式。我想使用EditorForModel()
,因为如果我决定稍后向模型添加/删除属性,我希望它自动向表单添加字段。
我遇到的问题是模型的编辑器获取每个属性并创建以下HTML :(这只是通用的。而不是实际的代码)
<div class="editor-label"><label>Label Title</label></div>
<div class="editor-field"><input type="type"/></div
然而,我想要为每个领域做的是:
<div class="editor-field">
<label>Label Title</label>
<input type="type"/>
</div>
但如果我尝试在编辑器模板中执行此操作,我会改为:
<div class="editor-label"><label>Label Title</label></div>
<div class="editor-field">
<label>Label Title</label>
<input type="type"/>
</div>
如何让EditorForModel()
无法使其拥有自己的标签字段?我知道我总是可以将它设计成隐藏在CSS中的样式,但如果它开始时它就不会很好,所以我可以限制代码混淆。
提前致谢。
PS:我也尝试使用[HiddenInput(DisplayValue = false)]
,但这只是隐藏整个字段,而不仅仅是标签。
答案 0 :(得分:1)
您需要在编辑器模板cshtml中编写此代码才能使其按预期工作:
@foreach (var property in ViewData.ModelMetadata.Properties)
{
<div class="editor-field">
<label>@property.GetDisplayName()</label>
@Html.Editor(property.PropertyName)
</div>
}