我正在尝试利用Html.EditorForModel()
来清理模型。
我为不同的数据类型创建了不同的EditorTemplate。当我用户@EditorFor()
时,一切似乎都很好。
现在,我不想在表单中多次复制以下内容,而是希望利用Object.cshtml
编辑器模板为我做这件事。
<div class="form-group">
@Html.LabelFor(...)
<div class="col-md-10">
@Html.EditorFor(...)
@Html.ValidationMessageFor(...)
</div>
</div>
我在EditorTemplates文件夹中创建了一个名为“Object.cshtml”的视图,我将以下代码放入其中
@model dynamic
@{
var elements = ViewData.ModelMetadata.Properties.Where(metadata => metadata.ShowForEdit && !metadata.IsComplexType && !ViewData.TemplateInfo.Visited(metadata));
}
@foreach (var element in elements)
{
if (element.TemplateHint == "HiddenInput")
{
@Html.Hidden(element.PropertyName)
}
else
{
<div class="form-group">
@Html.Label(element.PropertyName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.Editor(element.PropertyName)
@Html.BootstrapValidationMessage(element.PropertyName)
</div>
</div>
}
}
我如何用@Html.EditorForModel()
替换表单正文,但不幸的是我得到一张空白表单。
我试图在Object.cshtml
视图中设置一个断点,但它从未到达过它。如何让Razor
了解我的Object.cshtml