Esto no tiene nada que ver con los tipos anónimos que tienen propiedades internas.
Es perfectamente posible pasar tipos anónimos de una vista a una vista parcial
Hoy encontré el mismo problema y no tenía nada que ver (directamente) con el problema de pasar tipos anónimos y sus internal
propiedades inherentes .
Como tal, en relación con la pregunta de los PO, la respuesta de @Lucas es irrelevante, aunque la solución funcionará .
En la pregunta de OP, se pasa un tipo anónimo de una vista en el ensamblaje X a un parcial en el ensamblaje X , por lo tanto, el problema que David Ebbo describió de que las propiedades son internas para los tipos anónimos no tiene importancia; los tipos compilados para la vista, el tipo parcial y el anónimo están todos contenidos en el mismo ensamblado .
Entonces, ¿qué está causando la falla repentina de pasar un tipo anónimo de una vista a una parcial?
Al menos en mi situación, descubrí que se debía a tener otra vista en la MISMA CARPETA que especifica un tipo de modelo que no se puede resolver . Las vistas se compilan en tiempo de ejecución, por lo que tendría sentido, ya que una falla en el tiempo de ejecución para compilar las vistas también significaría una falla al compilar los tipos dinámicos y el parcial simplemente recibiría un object
. No es inmediatamente obvio lo que está sucediendo, pero en el ejemplo específico de OP (y en el mío), esta es más que probable la causa del problema.
Es interesante notar que si el tipo de modelo es correcto pero otra parte de la vista no se compila, los tipos anónimos no se ven afectados de la misma manera. Esto debe depender de cómo Razor divide la compilación dinámica de los componentes de la vista.
Una vez que corrija la vista ofensiva, reconstruya la solución completa o limpie y reconstruya el proyecto antes de verificar si está arreglado.
Para asegurarse de que esto no lo atrape nuevamente, puede habilitar la compilación en tiempo de compilación de sus vistas de Razor agregando esto a su csproj
archivo:
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>