tengo lo que parece (a mí) a ser un problema extraño ...Problema con MVC EditorFor plantilla llamada
he creado un editor de plantillas simple para un SelectListItem (SelectListItem.cshtml en el directorio ~/Views/Shared/carpeta EditorTemplates), por ejemplo:
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories)
</ul>
Dónde c.Categories es un IEnumerable
Esto funcionó bien, pero yo quería otra plantilla para hacer la colección con un poco diferente de marcado, así que copiar y cambió el nombre plantilla de editor para, por ejemplo, 'CategoryIcons.cshtm 'e invocado de la siguiente manera:
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories, "CategoryIcons")
</ul>
En resumen, la única diferencia es que estoy especificando una plantilla de editor con nombre.
Al abrir la página, ahora me sale el siguiente error:
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'
modelo de declaración de la plantilla, tanto en las plantillas de Identificación:
@model System.Web.Mvc.SelectListItem
No entiendo por qué la plantilla predeterminada funciona y la plantilla con nombre no. Cualquier ayuda sería apreciada.
Gracias.
Estaba escribiendo exactamente la misma respuesta, la única otra cosa que agregaré es que puede ajustar 'SelectListItem' con una clase de cualquier otro nombre y usar eso para obtener una plantilla diferente, pero en cualquier caso, esto es probablemente un buen lugar para alguien que quiera agregar a MVCContrib para comenzar. –
Gracias por la explicación y el consejo. Creé una nueva clase heredando de SelectListItem y luego creé una nueva plantilla para esa clase; funciona perfectamente, pero parece una sobrecarga innecesaria. – Neilski