如何摆脱 EditorForModel 中的默认标签
How to get rid of default label in EditorForModel
我有一个正在处理的 ASP.Net MVC 项目,我有一个模型,我想将其转化为我的形式。我想为此使用 EditorForModel()
,因为如果我稍后决定向模型添加 add/remove 属性,我希望它自动将字段添加到表单。
我遇到的问题是模型编辑器获取每个 属性 并创建以下 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)]
但这只会隐藏整个字段而不仅仅是标签。
您需要在编辑器模板 cshtml 中编写此代码才能使其按预期工作:
@foreach (var property in ViewData.ModelMetadata.Properties)
{
<div class="editor-field">
<label>@property.GetDisplayName()</label>
@Html.Editor(property.PropertyName)
</div>
}
我有一个正在处理的 ASP.Net MVC 项目,我有一个模型,我想将其转化为我的形式。我想为此使用 EditorForModel()
,因为如果我稍后决定向模型添加 add/remove 属性,我希望它自动将字段添加到表单。
我遇到的问题是模型编辑器获取每个 属性 并创建以下 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)]
但这只会隐藏整个字段而不仅仅是标签。
您需要在编辑器模板 cshtml 中编写此代码才能使其按预期工作:
@foreach (var property in ViewData.ModelMetadata.Properties)
{
<div class="editor-field">
<label>@property.GetDisplayName()</label>
@Html.Editor(property.PropertyName)
</div>
}