ho quello che sembra (a me comunque) è un problema strano ...problema con MVC EditorFor chiamato modello
ho creato un modello semplice editor per un SelectListItem (SelectListItem.cshtml in ~/Vista/Shared cartella/EditorTemplates), ad esempio:
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories)
</ul>
Dove c.Categories è un IEnumerable
Questo ha funzionato bene, ma ho voluto un altro modello per rendere la collezione con un po 'diverso di markup, quindi ho copiato e rinominato la modello di editor, ad esempio, 'CategoryIcons.cshtm 'e invocato come segue:
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories, "CategoryIcons")
</ul>
In breve, l'unica differenza è che sto specificando un modello di editor denominato.
Quando apro la pagina, ora ottengo il seguente errore:
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]', but this dictionary requires a model item of type 'System.Web.Mvc.SelectListItem'
modello di dichiarazione del modello, sia in modelli ID:
@model System.Web.Mvc.SelectListItem
Non capisco il motivo per cui il modello predefinito funziona e il modello nominato no. Qualsiasi aiuto sarebbe apprezzato.
Grazie.
Stavo scrivendo esattamente la stessa risposta, l'unica altra cosa che aggiungerò è che puoi racchiudere 'SelectListItem' con una classe di qualsiasi altro nome e usarlo per ottenere un modello diverso, ma in entrambi i casi, questo è probabilmente un buon posto per chi cerca di aggiungere a MVCContrib per iniziare. –
Grazie per la spiegazione e il consiglio. Ho creato una nuova classe ereditando da SelectListItem e poi creato un nuovo modello per quella classe - funziona perfettamente, ma sembra un sovraccarico non necessario. – Neilski