Sto ottenendo il seguente eccezione su una chiamata a Html.RenderPartial
:Errore con vista parziale fortemente tipizzato quando il modello è una struttura su un modello di genitore e è nullo
La voce modello di passato nel dizionario è di tipo 'ChildClass' ma questo dizionario richiede un elemento del modello di tipo 'ParentClass'.
Queste due classi sono relative a questo:
public class ChildClass { /* properties */ }
public class ParentClass
{
public ChildClass ChildProperty { get; set; }
/* other properties */
}
Ho un'istanza ParentClass
cui il valore di ChildProperty
è null
.
Ho due viste parziali, ParentView
(ViewUserControl<ParentClass>
) e ChildView
(ViewUserControl<ChildClass>
).
Nella prima vista, ho il seguente ...
<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty); %>
Questa è la linea che sta gettando l'eccezione elencata nella parte superiore di questo post.
Ho verificato la corretta funzionalità se ChildProperty
non è nullo. Perché MVC pensa che un valore nullo di questa proprietà sia di tipo genitore?
Posso aggirare questo problema aggiungendo il codice che rende solo il ChildView
se ChildProperty
non è nullo, ma questo mezzo sconfigge il punto di vista.
non riesco a spiegare il messaggio di errore, ma la migliore soluzione a questi tipi di problemi consiste nell'applicare il ** pattern Null Object **: http://en.wikipedia.org/wiki/Null_Object_pattern –