(とにかく私には)奇妙な問題のように見えるものがあります...
たとえば、SelectListItem (~/Views/Shared/EditorTemplates フォルダー内の SelectListItem.cshtml) の単純なエディター テンプレートを作成しました。
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories)
</ul>
c.Categories は IEnumerable です
これは問題なく機能しましたが、別のテンプレートでコレクションをわずかに異なるマークアップでレンダリングする必要があったため、エディター テンプレートをコピーして名前を「CategoryIcons.cshtm」などに変更し、次のように呼び出しました。
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories, "CategoryIcons")
</ul>
要するに、唯一の違いは、名前付きエディター テンプレートを指定していることです。
ページを開くと、次のエラーが表示されます。
ディクショナリに渡されたモデル アイテムのタイプは 'System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]' ですが、このディクショナリにはタイプ 'System.Web.Mvc.SelectListItem' のモデル アイテムが必要です
両方のテンプレート id のテンプレートのモデル宣言:
@model System.Web.Mvc.SelectListItem
デフォルトのテンプレートが機能し、名前付きテンプレートが機能しない理由がわかりません。どんな助けでも大歓迎です。
ありがとう。