2010-02-03 3 views

Répondre

0

Vous cherchez ceci:

<% Html.RenderPartial("partial", Model.Foo); %> 
+0

est le contrôle utilisateur assez intelligent pour faire son propre objet Foo égal à celui passé ici? le View et le contrôle utilisateur ont différents ViewModels qui contiennent tous les deux un Foo – raklos

1

Si vous faites ceci:

<% Html.RenderPartial("partial", Model.Foo); %> 

Puis l'une des deux choses se produira.

  1. Si la vue de Model.Foo est non -null, puis sera égal à la vue de Model.Foo et Model.Foo sera la vue de Model.Foo.Foo de la UserControl Model de l'UserControl.
  2. * Si la vue est de Model.Foode nulle, puis sera égal à la vue de Model et Model.Foo sera la vue de Model.Foo de la UserControl Model de l'UserControl. Si les View Model et Model.Foo de View ne sont pas du même type et que Model View est non nul et si UserControl utilise des données d'affichage fortement typées, alors vous obtiendrez une erreur d'exécution puisque le modèle UserControl est maintenant de type TViewModel au lieu de TUserControlModel.
+0

je l'ai fait fonctionner en ayant Foo comme paramètre dans le constructeur du modèle de vue usercontrol. puis en passant l'instance du modèle de vue usercontrol comme second paramètre dans la méthode renderpartial. – raklos

Questions connexes