5

he creado una OrderFormViewModel que será similar amodelo MVC unión a las interfaces

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

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

} 

Esto va a mi Crear vista, donde cada sección (es decir, los datos de entrega, los datos de pago, etc ...) luego se pasa a una vista parcial que captura los campos necesarios.

Pensé que todo estaba bastante bien hasta que lo ejecuté y me di cuenta, por supuesto, que el archivador modelo MVC no sabe cómo crear una instancia de ninguna de las interfaces.

¿Hay alguna manera de resolver esto de alguna manera?

También estoy tratando de aprender DI utilizando el contenedor Unity, así que estoy tratando de evitar tener referencias a cualquier clase concreta en mi proyecto de interfaz de usuario (el modelo está en un proyecto separado).

Respuesta

5

Una solución es crear un archivador de modelo personalizado, pero esta ruta significa que deberá realizar el esfuerzo de traducir elementos de formulario a las propiedades de su objeto. Sin embargo, tiene un control total sobre la implementación de IOrderDetails, por ejemplo, o puede hacer que su DI le proporcione el tipo concreto correcto utilizando su configuración.