如何摆脱EditorForModel中的默认标签

时间:2017-04-30 20:08:44

标签: c# asp.net asp.net-mvc editorfor editorformodel

我有一个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)],但这只是隐藏整个字段,而不仅仅是标签。

1 个答案:

答案 0 :(得分:1)

您需要在编辑器模板cshtml中编写此代码才能使其按预期工作:

@foreach (var property in ViewData.ModelMetadata.Properties)
{
    <div class="editor-field">
        <label>@property.GetDisplayName()</label>
        @Html.Editor(property.PropertyName)
    </div>
}