Domanda

Ho creato un OrderFormViewModel che sembra qualcosa di simile

public class OrderFormViewModel 
{
    public IOrderDetails { get; set; }
    public IDeliveryDetails { get; set; }
    public IPaymentDetails { get; set; }
    // ... etc

    public SelectList DropDownOptions { get; set; }
    // ... etc

}

Questo va al mio Crea vista, dove ogni sezione (cioè dettagli della consegna, i dettagli di pagamento, ecc ...) è quindi passata a una visione parziale che cattura i campi necessari.

Ho pensato che questo era tutto abbastanza pulito fino a quando mi sono imbattuto e sono reso conto, naturalmente, che il modello MVC legante non sa come creare un'istanza qualsiasi delle interfacce.

C'è un modo per risolvere questo in qualche modo?

Sto anche cercando di imparare DI utilizzando il contenitore Unità, quindi sto cercando di evitare di avere i riferimenti a tutte le classi concrete nel mio progetto di interfaccia utente (modello è in un progetto separato).

È stato utile?

Soluzione

Una soluzione è quella di fare un modello personalizzato legante, ma questo significa percorso sarà necessario passare attraverso lo sforzo di tradurre elementi del modulo alle proprietà sull'oggetto. Tuttavia, si ha il controllo completo su cui si abitua attuazione IOrderDetails, per esempio, o si può avere la DI ti danno il giusto tipo concreto utilizzo di configurazione.

Altri suggerimenti

Una possibile soluzione potrebbe essere qui (in Interfaccia Binding Filtro vs Binding View Model): http://codetunnel.com/aspnet-mvc-model-binding-security/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top