由于razor无法识别`Object.cshtml`模板,Html.EditorForModel()返回空白屏幕

时间:2018-03-08 23:21:13

标签: asp.net-mvc razor asp.net-mvc-5 mvc-editor-templates

我正在尝试利用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

0 个答案:

没有答案