该项目目前是 MVC3,但如果需要可以升级。
我正在尝试为一个简单的 cms 改进内容编辑器。目前我们使用
@Html.EditorFor(model=>model.Content) //Content is a List<EditableContent>
EditableContent 具有字符串 EditorView 的(全新)属性。这个想法是这将为特定的内容项目命名合适的编辑器。
如果 EditorView 为空,我想要做的是使用我的默认 EditableContent 模板,否则使用 EditorView 作为命名模板。我知道 EditorFor 的重载需要一个模板,但这将对每个内容项使用相同的模板,但这不是我想要的。
我确实尝试使用我的默认模板,基本上是在做
//Shared/EditorTemplates/EditableContent.cshtml
@model Website.Areas.Admin.EditableContent
@if (!string.IsNullOrWhiteSpace(Model.EditorView))
{
<text>
@Model.EditorView
@Html.EditorForModel(Model.EditorView)
</text>
}
else
{
//Original template
}
奇怪的是,在这种情况下,视图被定位(我有一个稍微自定义的视图引擎,它似乎可以正确定位视图)。视图的名称(通过 @Model.EditorView )被发送到页面,但 @Html.EditorForModel() 不会产生任何东西。
有什么想法可以使用 EditorFor 或类似方法为每个项目使用自定义模板吗?