2010-02-17 11 views
5

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.

+0

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 –

risposta

Problemi correlati