首页 > 解决方案 > ASP.NET MVC 5 编辑器模板

问题描述

我正在尝试构建一些半通用的编辑器模板,以减少我编写的重复布局 HTML 的数量,即处理标签、输入、验证消息等。我想将它们与 EditorFor 一起使用,如下所示:

@Html.EditorFor(m => m.Property, "MyLayoutTemplate")

我想明确指定模板,因为仍应使用该属性的任何 UIHInt 属性。

简化的布局编辑器模板可能如下所示:

<div class="form-group")>
    @Html.Label(ViewData.ModelMetadata.DisplayName, new {@class = ... })
    <div class="...">
        [EditorHere]
        @Html.ValidationMessage(ViewData.ModelMetadata.PropertyName, string.Empty, new { @class = "text-danger" })
    </div>
</div>

我想让编辑器替换上面的 [EditorHere] 标记,即我想以某种方式调用 EditorFor 方法。可能吗?

无论是否键入模板,调用 EditorFor(m => m) 都不起作用。但是,我认为这必须以某种方式实现,因为 ViewData.ModeMetadata 似乎包含所有必需的信息。

我知道如何使用 HtmlHelper 扩展方法来实现这一点,而且我已经这样做了。但是,我不太喜欢在代码中构建 HTML。

这个问题与扩展 Asp.net MVC 3 Editor Templates基本相同但是,我不能使用答案,因为我不想使用默认编辑器。

标签: asp.net-mvcmvc-editor-templates

解决方案


推荐阅读