1

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

4

1 回答 1

1

您需要在编辑器模板 cshtml 中编写它以使其按预期工作:

@foreach (var property in ViewData.ModelMetadata.Properties)
{
    <div class="editor-field">
        <label>@property.GetDisplayName()</label>
        @Html.Editor(property.PropertyName)
    </div>
}
于 2017-04-30T20:34:08.417 回答