Passando due diversi modelli per una vista con ASP.Net MVC
-
19-09-2019 - |
Domanda
Sto cercando di impostare una visualizzazione che visualizza due diversi modelli. Per esempio, ho una visione "Dettagli", che mostra i dettagli di un cliente; che sto passando il mio modello del cliente. Voglio anche avere una sezione della pagina sotto le informazioni del cliente (Stavo pensando di utilizzare una vista parziale) che elenca i loro animali domestici (per una pratica veterinario). Ho cercato di impostare una vista parziale e nella finestra di dialogo ho indicato di utilizzare il modello di "pet", ma era infruttuoso nel mio tentativo. Qualsiasi aiuto sarebbe molto apprezzato.
Soluzione
Una visione parziale sarebbe grande per la lista gli animali domestici. Basta creare un fortemente tipizzato .ascx come:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PetList>" %>
Poi visualizzarlo dalla pagina principale. Si potrebbe desiderare di utilizzare lo stesso controllo elenco animali domestici su altre pagine.
Altri suggerimenti
Creare una classe che contiene i dati dei clienti ei dati Pet:
public class CustomerDetailsViewModel
{
public Customer Customer { get; set; }
public IList<Pet> Pets { get; set; }
}
Questo è il tuo modello per la vista. All'interno della vista, utilizzare Model.Customer
per i dati dei clienti e passare Model.Pets
alla tua visione parziale che è fortemente tipo di IList<Pet>
.
Fai una vista stongly digitato prendendo un tipo come
Pair<Customer, Pet> (or Pair(of Customer, Pet)) if using VB
o semplicemente passare una
Pair<Customer, Pet>
oggetto nell'oggetto visualizzazione dei dati.
Poi passare l'oggetto Pet alla vista parziale.