首页 > 解决方案 > 从 DisplayTemplates 调用 EditorTemplates

问题描述

我在使用 DisplayTemplate 调用 EditorTemplate 时遇到问题。这样做的原因是我希望我的 DisplayTemplate 与 EditorTemplate 相同,但禁用所有字段。这可以防止在需要更改时更新两个视图。当直接从非 DisplayTemplate 视图调用时,EditorTemplate 会正确呈现。

编辑器模板:

@model MyNamespace.ViewModel

@Html.TextBoxFor(m => m.Property1)

显示模板:

@model MyNamespace.ViewModel

<fieldset disabled="disabled">
    @Html.EditorFor(m => m)
</fieldset>

DisplayEditor 呈现fieldset标记,但内部没有任何内容。我已经验证传入的模型是否填充了数据。EditorTemplate 内的断点未命中。

我也试过打电话@Html.EditorFor(m => m, "~/FullyQualifiedPath/EditorTemplates/ViewModel.cshtml)没有任何运气。令人惊讶的是,如果我使用@Html.Partial("~/FullyQualifiedPath/EditorTemplates/ViewModel.cshtml")EditorTemplate 将按预期呈现。

虽然我在技术上已经解决了这个问题,但使用 Partial 手动调用模板似乎不太正确。

标签: c#asp.net-mvcrazormvc-editor-templates

解决方案


推荐阅读