プロジェクトは現在MVC3ですが、必要に応じてアップグレードできます。
単純なcmsのコンテンツエディタを改善しようとしています。現時点では使用しています
@Html.EditorFor(model=>model.Content) //Content is a List<EditableContent>
EditableContentには、文字列EditorViewの(新しい)プロパティがあります。アイデアは、これがコンテンツの特定のアイテムに適したエディターを指名するということです。
EditorViewがnullの場合は、デフォルトの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などを使用してアイテムごとにカスタムテンプレートを使用する方法についてのアイデアはありますか?