2009-11-11 4 views
2

J'essaie de configurer une vue qui affiche deux modèles différents. Par exemple, j'ai une vue "Détails" qui montre les détails d'un client; que je passe mon modèle de client. Je veux aussi avoir une section sur la page sous l'information du client (je pensais à utiliser une vue partielle) qui répertorie leurs animaux de compagnie (pour une pratique vétérinaire). J'ai essayé de mettre en place une vue partielle et dans la boîte de dialogue, j'ai indiqué d'utiliser le modèle "animal de compagnie", mais n'a pas réussi dans ma tentative. Toute aide serait grandement appréciée.Passage de deux modèles différents à une vue avec ASP.Net MVC

Répondre

2

Une vue partielle serait idéale pour la liste des animaux de compagnie. Il suffit de créer un .ascx fortement typé comme:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PetList>" %> 

Ensuite, affichez-le à partir de la page principale. Vous pouvez utiliser le même contrôle de liste d'animaux sur une autre page.

1

Faire une vue stongly typé prenant un type comme

Pair<Customer, Pet> (or Pair(of Customer, Pet)) if using VB 

ou tout simplement passer un

Pair<Customer, Pet> 
objet

dans la vue objet de données.

Passez ensuite l'objet Pet à la vue partielle.

2

Créer une classe qui contient les données des clients et les données Animal familier:

public class CustomerDetailsViewModel 
{ 
    public Customer Customer { get; set; } 
    public IList<Pet> Pets { get; set; } 
} 

C'est votre modèle pour la vue. À l'intérieur de la vue, utilisez Model.Customer pour vos données client et transmettez Model.Pets à votre vue partielle qui est fortement de type IList<Pet>.

Questions connexes