2010-02-17 4 views
5

Je reçois l'exception suivante sur un appel à Html.RenderPartial:erreur avec vue partielle fortement typé lorsque le modèle est une propriété sur un modèle de parent et est nul

L'élément de modèle passé dans le dictionnaire est de type 'ChildClass' mais ce dictionnaire nécessite un élément de modèle de type 'ParentClass'.

Ces deux classes sont liées ceci:

public class ChildClass { /* properties */ } 

public class ParentClass 
{ 
    public ChildClass ChildProperty { get; set; } 

    /* other properties */ 
} 

J'ai une instance de ParentClass où la valeur de ChildProperty est null. J'ai deux vues partielles, ParentView (ViewUserControl<ParentClass>) et ChildView (ViewUserControl<ChildClass>).

Dans la première vue, je suit ...

<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty); %> 

C'est la ligne qui jette l'exception figurant en haut de ce poste.

J'ai vérifié la bonne fonctionnalité si ChildProperty n'est pas nulle. Pourquoi MVC pense-t-il qu'une valeur nulle de cette propriété est du type parent?

Je peux contourner ce problème en ajoutant du code qui rend seulement le ChildView si ChildProperty n'est pas nul, mais cette moitié vainc le point d'avoir la vue.

+0

Je ne peux pas expliquer le message d'erreur, mais la meilleure solution pour ces types des problèmes est d'appliquer le ** motif Null Object **: http://en.wikipedia.org/wiki/Null_Object_pattern –

Répondre

Questions connexes